Tour de France: final test looms for Chris Froome
One more major test stands between Chris Froome and a second Tour de France title - but Nairo Quintana will push the Briton all the way up Alpe-d'Huez on Saturday.
Froome (Team Sky) had made serene progress until Friday's 138-kilometres 19th stage from Saint-Jean-de-Maurienne to La Toussuire when his rivals managed to expose him, and Quintana (Movistar) trimmed his overall advantage to two minutes 38 seconds.
Vincenzo Nibali (Astana) won, claiming some consolation for his poor title defence, after making his initial move when Froome adjusted his bike after a mechanical stop on the Col de la Croix de Fer.
Now only Quintana and the 110.5km 20th stage which finishes atop Alpe-d'Huez stands in the way of Froome and a second yellow jersey.
Sunday's final stage in Paris is a procession contested by the sprinters.
La Toussuire was the scene of Froome's attack on Team Sky leader Sir Bradley Wiggins in the 2012 Tour, but now the Kenya-born Briton is the undisputed leader.
The concluding 18km ascent was always where the race would ignite and so it proved as Quintana attacked with 6km remaining.
Froome was the only rider who could keep pace as Alberto Contador (Tinkoff-Saxo) and Alejandro Valverde (Movistar) slipped behind.
The Colombian climber made gains on Froome - he finished 44secs behind Nibali and the Briton 1:14 adrift - but Quintana will need to attack earlier to seize the maillot jaune in dramatic fashion on Saturday's penultimate stage.
Froome had been hoping to have a second Briton on the podium in Paris, but Geraint Thomas' hopes of even finishing in the top five appear to be over.
The Welshman finally struggled after two and a half weeks of consummate support as only Dutchman Woet Poels was able to support Froome on a challenging third of four days in the Alps.
Valverde held on to third place, 5:25 behind Froome, but Nibali overtook Contador to move into fourth, 6:44 adrift.
Contador fell 7:56 behind in fifth position.
Froome survived the first two Alpine stages unscathed, but his Team Sky squad was decimated on the opening ascent of the day, the category one Col du Chaussy, as Contador tried to force the pace.
Richie Porte and Thomas fell away, leaving Froome with just Poels for company.
Porte and Thomas rejoined their leader on the descent, but it was a warning for what was to follow as Thomas again rolled back like a stone when the bunch began the hors categorie (beyond category) Col de la Croix de Fer.
Froome accelerated himself to try to reduce the size of the group, but the pace slowed and he was rejoined by Poels, with Thomas more than two minutes adrift.
With Pierre Rolland (Europcar) up the road, Valverde attacked 5km from the summit and joined Ruben Plaza, but the Spanish pair were reeled back in.
Valverde went again when Froome slowed to a standstill and had to unclip from his pedals to resolve a mechanical issue.
Nibali followed Valverde and the Italian forged on.
Froome was abused by a roadside spectator, but the gesture seemed only to spur him on as he rejoined the bunch and remonstrated with Valverde for his untimely attack as Nibali forged on alone in pursuit of Rolland.
Nibali caught the Frenchman, winner at La Toussuire three years ago, and the pair descended together with a lead of around two minutes on Froome and company.
Nibali attacked alone on the lower slopes of the final ascent and had a lead of 2:20 over the 11-rider Froome group with 7km to go.
Poels was unable to maintain the tempo and Quintana made his move.
Froome followed, dragging Contador and Valverde on his wheel.
The Colombian opened up a gap, but Froome chased to limit the damage.