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 today'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 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.
Nicolas Roche finished in 108th and is now in 37th place, while Dan Martin came in 36th and lies 43rd in general classification.