The final remnant of the day's break and riding solo for the final six kilometres, Navarro (Cofidis) looked set to take his first victory since 2014.
But Yates had other ideas, sweeping up the Spaniard with just under 50 metres to the line.
The Mitchelton-Scott rider left the GC party with 200 metres to go, one where Romain Bardet had supplied much of the fireworks with multiple attacks on the final climb.
“It’s been two back to back hard stages," Yates said. "The past four days, I’ve always been kinda the one to initiate the attacks. So today I decided to wait. I just made that final move towards the end. I could take the stage win on the last corner.
"Romain Bardet was trying to overtake me in the GC. But every time I responded. The Tour de France has been my main goal for the whole season. We’re getting closer and closer. I’m happy to get confidence from this race. I look forward to the Tour now.”
The Frenchman and his Ag2R team animated the stage GC wise, turning the screws on the descent of the Col des Saisies after Thomas punctured some 40 kilometres from the finish. As a result, a gap of around 40 seconds opened up between the yellow jersey and the GC group, but Sky and Thomas kept their cool, finally making it back on with 28 kilometres to go.
The Welshman appeared not to be as chilled though when admonishing Bardet for daring to attack the yellow jersey after a mechanical.
Ag2R also caused a split 12 kilometres from the Saint-Gervais Mont Blanc finish which caught out Dan Martin (UAE). But the Irishman hooked back on six kilometres later, brandishing his own accelerations in the dying kilometres.
Earlier on the final climb, Navarro chased down and slipped past fellow escapee David Gaudu (Groupama FDJ) who had also attacked the leftovers from the six-rider break that formed after 30 kilometres raced.
More to come.