Vincenzo Nibali (Bahrain-Merida) won his first Tour de France stage in five years as he survived from the breakaway on the reduced stage 20 to Val Thorens.
The Movistar pair of Alejandro Valverde and Mikel Landa jumped from the GC group with 800m to go to finish second and third and sweep up the remaining bonus seconds on offer.
Egan Bernal (Ineos) successfully defended his yellow jersey, finishing in the front group as his team-mate Geraint Thomas raised the young Colombian’s hand in victory as they crossed the line together in fourth and fifth.
Julian Alaphilippe (Deceuninck – Quick-Step) cracked with 13km to go on the climb, eventually finishing more than three minutes down on Nibali, slipping down the overall classification to fifth place.
Romain Bardet (Ag2r) was fortunate that Bernal didn’t finish higher up and claim enough King of the Mountains points to take the polka dot jersey up the Frenchman, a small consolation prize for the home nation after a Tour that had shown so much promise.
Acts of God aside on stage 21, Bernal will become the third youngest Tour de France winner, with Thomas taking up the second spot on the podium, with Steven Kruijswijk (Jumbo-Visma) third.
How it happened
The reduced stage 20, from 130km to 59.5km, saw the peloton miss out on the first category climb to Cormet de Roselend and the second category Côte de Longefoy but still included the summit finish to Val Thorens, a 33.4km climb with an average gradient of 5.4 per cent. This would provide a final chance for GC contenders to attack Egan Bernal’s race lead ahead of the stroll along the Champs-Élysées on stage 21.
After a close call as to whether the weather would hold up and allow stage 20 t0 g0 ahead, there was further talk of reduced racing at the start line, with a potential 11km reduction on Val Thorens should the weather not continue to brighten as the riders rolled out of Albertville.
Magnus Cort (Astana) was one of the first to animate proceedings once the flag had dropped for the penultimate time at this year’s race, with 23 riders eventually taking out a 1-40 gap after 14km of racing.
This was soon whittled down to four riders at the front, with Vincenzo Nibali (Bahrain-Merida), Tony Gallopin (Ag2r La Mondiale), Ilnur Zakarin (Katusha-Alpecin) and Michael Woods (EF Education First) going clear with 26km to go.
With Ineos and Jumbo-Visma controlling the peloton, the front group’s gap decreased from two to one minute, with both GC teams shelling domestiques out the back. Ineos were left with just Wout Poels while George Bennett put in a massive shift before handing over to Laurens De Plus for Jumbo-Visma to try and set up Steven Kruijswijk’s assault on the podium places.
Marc Soler (Movistar) then attacked the peloton with 13km to go, which cracked Julian Alaphilippe (Deceuninck – Quick-Step), his team-mate Enric Mas dropping back to help as Romain Bardet (Ag2r La Mondiale) and his polka dot jersey also fell away from the GC group.
Vincenzo Nibali (Bahrain-Merida) went off alone in search of the stage win from the breakaway with 12km to go, as Kruijswijk overtook Alaphilippe in the virtual GC as the Frenchman fought on, attempting to limit his losses.
With 9km remaining, Alaphilippe was a minute behind, with Vincenzo Nibali a minute ahead of the GC group, as David Gaudu (Groupama-FDJ) was dropped, wearing the white jersey for Bernal.
Alaphilippe had slipped to virtual fifth in the overall classification with 7km to go, as Simon Yates (Mitchelton-Scott) attacking a kilometre later, as Nibali maintained his advantage up ahead.
Warren Barguil (Arkéa-Samsic) and Marc Soler then attacked, with Nairo Quintana (Movistar) following as Kruijswijk was left on the front of the GC group and looking around, the main contenders watching each other carefully.
With 4km to go, Alaphilippe was two minutes down on the GC group, holding his own and finding his feet in the closing kilometres of the stage, as Soler was the last of the poursuivants dangling out front as Gregor Mühlberger (Bora-Hansgrohe), led the group of contenders for his team leader Emanuel Buchmann.
Nibali ‘s advantage was holding, 47 seconds ahead of with 3.5km to go as Poels say on Mühlberger’s wheel, waiting to take over when the Austrian cracked.
Alaphilippe’s group, which contained Bardet, were two and a half minutes back with 2km to go, as Mühlberger pulled off to hand over to Ineos, 34 seconds behind Nibali who was heading to a first Tour de France stage win in five years.
Mikel Landa (Movistar) attacked with less than 1km to go, as his team-mate Alejandro Valverde followed, the pair finishing ten seconds behind Nibali.
Bernal and Thomas were next, the defending champion congratulating the new champion as they crossed the line, delivering Ineos a seventh win in eight years, with four different riders.
Tour de France 2019, stage 20: Albertville to Val Thorens (59.5km)
1. Vincenzo Nibali (Ita) Bahrain-Merida, in 1-51-53
2. Alejandro Valverde (Esp) Movistar, at 10 seconds
3. Mikel Landa (Esp) Movistar, at 14s
4. Egan Bernal (Col) Ineos, at 17s
5. Geraint Thomas (GBr) Ineos, at same time
6. Rigoberto Urán (Col) EF Education First, at 23s
7. Emanuel Buchmann (Ger) Bora-Hansgrohe, at same time
8. Steven Kruijswijk (Ned) Jumbo-Visma, at 25s
9. Wout Poels (Ned) Ineos, at 30s
10. Nairo Quintana (Col) Movistar, at same time
General classification after stage 20
1. Egan Bernal (Col) Ineos, in 79-52-52
2. Geraint Thomas (GBr) Ineos, at 1-11
3. Steven Kruijswijk (Ned) Jumbo-Visma, at 1-31
4. Emanuel Buchmann (Ger) Bora-Hansgrohe, at 1-56
5. Julian Alaphilippe (Fra) Deceuninck – Quick-Step), at 3-45
6. Mikel Landa (Esp) Movistar, at 4-23
7. Rigoberto Urán (Col) EF Education First, at 5-15
8. Nairo Quintana (Col) Movistar, at 5-30
9. Alejandro Valverde (Esp) Movistar, at 6-12
10. Warren Barguil (Fra) Arkéa-Samsic