PEYRAGUDES, France -- Chris Froome cracked in the final stages of a grueling climb to the finish and lost the overall lead in the Tour de France to Fabio Aru on Thursday, after a demanding stage won by Romain Bardet.

Froome's Sky teammates perfectly controlled the race until the final kilometre leading to the ski station of Peyragudes, but the three-time champion was dropped in a final section that featured slopes with a 20 per cent gradient.

Bardet won Stage 12 ahead of Rigoberto Uran and Aru, who seized the race lead from Froome by six seconds. Bardet is third overall, 25 seconds off the pace.

Team Sky had dominated the stage until the final 500 metres, when Aru made his move. Froome was only able to follow his Italian rival for a few meters and looked glued to the road.

Bardet was the strongest in the brutal incline and described his third stage win on the Tour as "an immense joy."

He said he had visited the ski station with his parents to scout out the final climb.

"I knew it could suit me," he said. "I was patient. I made the difference on the final hill, there was not much to do before that with the wind and the Sky train."

Aru had trailed Froome by 18 seconds at the start of the stage.