Förhandsfavoriterna Tadej Pogačar, Slovenien, och Jonas Vingegaard, Danmark, gick i mål samtidigt, fem minuter efter utbrytargruppen.
Simon Yates, som vann årets Giro d'Italia, var vassast i den åttonde och sista klättringen på den tionde etappen, 165,3 kilometer, och vann med nio sekunders marginal till tvåan Thymen Arensman, Nederländerna, och 31 sekunder före trean Ben Healy.
Yates seger var hans tredje etappvinst i Tour de France – och kom sex år efter hans första två.
— Vi kom hit fullt fokuserade på Jonas, sedan öppnade sig möjligheten att ta hem etappen. Jag tog den med båda händerna, säger Yates, lagkamrat med Vingegaard i Team Visma, till AP.
Ben Healy vann den sjätte etappen i Normandiet i torsdags och tog över totalledningen med 29 sekunders marginal till regerande mästaren Pogačar.
Han blev därmed den förste irländske totalledaren i Tour de France sedan Stephen Roche för 38 år sedan.
Han tackade etappvinnaren Yates för det.
— Hatten av för honom, det var hans förtjänst att de andra var så långt efter, säger Healy till AFP.
Remco Evenepoel, Belgien, är totaltrea, 1.29 efter ledaren.
Dubble Tour de France-vinnaren Vingegaard är fyra, 1.46 efter Healy.
På tisdagen väntar en vilodag för cyklisterna.