Vincenzo Nibali reclaimed the leader's yellow jersey he lost on Sunday by winning the 161km 10th stage of the Tour de France from Mulhouse to La Planche des Belles Filles.
Italian Nibali overhauled Spaniard Joaquim Rodriguez inside the final kilometre of a tortuous mountain stage to claim his second victory on this year's race.
Earlier, two-time winner Alberto Contador had quit the Tour after injuring his knee in a crash.
The 31-year-old Spaniard crashed around 65km into the stage and lost four minutes to the peloton as he received treatment to bandage his injured right knee.
But just 15km later, around halfway through the stage, he climbed off his bike in floods of tears and into a Tinkoff-Saxo team car.
His retirement came just five days after reigning champion Chris Froome had quit after fracturing his left wrist and right hand in a succession of crashes.
Up front, Rodriguez looked to be heading for victory on his own until Nibali's attack on the final first category climb reeled him in.
Frenchman Thibaut Pinot took second on the stage, 15sec behind, with Spaniard Alejandro Valverde third at 20sec.
Australian Richie Porte came home seventh on the stage at 25sec to move up to second overall at 2:23 from Nibali. Valverde is third at 2:47.
Frenchman Tony Gallopin, who started the Bastille Day stage in yellow, came home 4:46 behind Nibali and dropped to fifth overall at 3:12 to the Italian.