Frenchman Christophe Riblon surpassed Tejay van Garderen near the end of the final climb to win stage 18 of the Tour de France on Thursday.
Riblon, who became the first Frenchman to win a stage on this year's race, caught the American with two kilometres remaining before clinching victory.
Chris Froome had his struggles, but the Team Sky rider retained the yellow jersey and extended his overall lead to five minutes and 11 seconds after finishing a minute ahead of main rival Alberto Contador.
Moreno Moser finished third, while Nairo Quintana and Joaquim Rodriguez were fourth and fifth respectively.