Chris Froome (Team Sky) all-but sealed his second Tour de France victory, finishing fifth on Alpe d’Huez as Thibaut Pinot (FDJ) claimed a famous French stage win on the iconic climb.
Nairo Quintana (Movistar), Froome’s nearest challenger overall and the man in the white jersey, was second on the day but the Team Sky man had built up enough of a buffer in the Pyrenees to ensure his overall lead was never truly threatened.
Both Pinot and Quintana put in gutsy rides, but the efforts of Wout Poels and Richie Porte ensured Froome should seal a third British Tour victory in the last four years on the Champs Elysees on Sunday.
And the Kenyan-born 30-year-old will also be crowned King of the Mountains thanks to his performances on stage 20, with Romain Bardet (Ag2r-La Mondiale) unable to protect his slender lead in the classification.
Alexandre Geniez (FDJ) had set the early tempo, getting in the break from the off and holding the advantage over the top of the Col de la Croix de Fer.
Several riders joined him, or attempted to chase on, at various points but it was the Frenchman alone up the road with the GC men battling behind him.
With Quintana needing to cut into Froome’s advantage, Movistar were unsurprisingly active and Alejandro Valverde blasted off the front of the GC group on the climb.
Froome had several team-mates for company initially, but Quintana picked his own moment to attack perfectly – leaving the yellow jersey with just Porte for company.
That attack was sufficient to earn a small advantage and join Valverde, but the Colombian appeared to be riding within himself at times in order to keep the Spanish champion with him for the descent.
Porte continued to lead the chasing group, keeping the two Movistar riders in check, but an attack by stage 19 winner Vincenzo Nibali (Astana) put paid to that.
The acceleration did, however, allow Froome – now the virtual King of the Mountains again too – to bridge across to Quintana, with several others making it back across too.
Geniez’s original breakaway companions – Lars Bak (Lotto-Soudal), Nicolas Edet (Cofidis) and Ramunas Navardauskas (Cannondale-Garmin) – were joined by more chasers as they reached Alpe d’Huez, meanwhile.
Back in the GC group, Nibali suffered an ill-timed mechanical, with Movistar setting the tempo on the front.
Quintana attacked again, with Porte on his wheel and Froome looking to bridge across, but the Colombian was relentless – as was Ryder Hesjedal (Cannondale-Garmin) in the chasing group behind Geniez.
Hesjedal was joined by Thibaut Pinot (FDJ), while Quintana’s constant attacking finally earned him an advantage – Froome being dragged back by Poels and Porte.
At the front, Pinot joined his team-mate, but Hesjedal still could not be distanced – Geniez eventually paying for his efforts as the other two went clear.
Quintana picked off the other attackers of the day, including team-mate Winner Anacona, while Porte and Poels continued to pace Froome, with Valverde on their wheels.
Quintana got more than a minute’s advantage, but Froome could not be shaken thanks in no small part to the stunning riding of his two team-mates.
Pinot went solo on the front, with Quintana picking off and passing Hesjedal just behind, but the Frenchman would not be denied a famous victory.
He hit the final kilometre alone, with a 20-secon advantage over Quintana, and punched the air in delight after taking victory.
Just behind, Quintana pressed on for every second’s advantage but – even with Porte finally dropped – Froome was too close to be shaken from the top of the general classification.
There were more than 80 seconds and three places between Quintana and Froome at the finish line, but that was more than enough to ensure victory is all but assured for the second time in three years for the Brit tomorrow.
Tour de France 2015: stage 20 – result
1) Thibaut Pinot (FRA) – FDJ – 3.17.21hrs
2) Nairo Quintana (COL) – Movistar +18”
3) Ryder Hesjedal (CAN) – Cannondale-Garmin +41”
4) Alejandro Valverde (ESP) – Movistar +1.38
5) Chris Froome (GBR) – Team Sky – ST
6) Pierre Rolland (FRA) – Team Europcar +1.41
7) Richie Porte (AUS) – Team Sky +2.11
8) Winner Anacona (COL) – Movistar +2.32
9) Wout Poels (NED) – Team Sky +2.50
10) Ruben Plaza (ESP) – Lampre-Merida – ST
General classification
1) Chris Froome (GBR) – Team Sky – 81.56.33hrs
2) Nairo Quintana (COL) – Movistar +1.12
3) Alejandro Valverde (ESP) – Movistar +5.25
4) Vincenzo Nibali (ITA) – Astana +8.36
5) Alberto Contador (ESP) – Tinkoff-Saxo +9.48
6) Robert Gesink (NED) – LottoNL-Jumbo +10.47
7) Bauke Mollema (NED) – Trek Factory Racing +15.14
8) Matthias Frank (SUI) – IAM Cycling +15.39
9) Romain Bardet (FRA) – Ag2r-La Mondiale +16.00
10) Pierre Rolland (FRA) – Team Europcar +17.30