The 25-year-old rider stormed past his rivals near the summit of Gran Sasso d'Italia to finish ahead of Thibaut Pinot (Groupama-FDJ) and his Mitchelton-Scott team-mate Esteban Chaves.
Yates now has a 32-second lead over Chaves in the overall standings, with defending champion Tom Dumoulin (Sunweb) 38 seconds back.
It was another difficult day for four-time Tour de France champion Chris Froome (Sky), who fell away from the leading group in the 225km ride and is now two minutes and 27 seconds behind Yates and down to 11th place overall.
“I was not surprised by my performance today," Yates said. "I already felt on the Etna that I I had very good legs, but today was very a difficult stage, a very long one, so I was not 100 per cent confident in doing well in the finale.
"I’ve seen [Domenico] Pozzovivo, who was incredibly strong; Thibaut Pinot was there again, looking good and Tom [Dumoulin] is still there. We haven’t got so much time on him; 38 seconds of an advantage on him isn’t enough before the time trial.
"On the other hand, some guys lost time. Chris Froome, maybe it was from the crashes, maybe he’s got no form, I don’t know. I was surprised to see Fabio Aru being dropped, but it’s a long race. Maybe they can bounce back.”
Monday is the second rest day in the race, which ends in Rome on May 27.