
Friday, July 24: Stage 19, Gap-Alpe d'Huez, 127.9 km
Stage 19 map & profile | Stage 19 photos

Tadej Pogacar takes a solo win atop Alpe d'Huez.
Bill & Carol McGann's book The Story of the Tour de France, 2020: The Tour During Covid-19, Better Late Than Never is available in both Kindle eBook and Audiobook versions. To get your copy, just click on the Amazon link on the right.
Weather at Le Bourg d'Oisans, on the route, 16 km from the finish, at 2:10 PM, local time: 29C (85F), sunny, with the wind from the west-southwest at 13 km/hr (8 mph). No rain is forecast.
Rated ascents:
The stage: Tour boss Christian Prudhomme writes: The climb to Alpe d’Huez will be revealing its two sides for the first time, making it very possible that the deck could be reshuffled over these two days. The challenges set are quite different, with this first test featuring an ultra-dynamic route that may tempt some riders to go for broke on the ascent of the Col Bayard, then hold firm on the Col du Noyer and Col d’Ornon. After that, they’ll have to conquer the famous climb with its 21 hairpins. It’s some challenge for the ambitious.
The official start is scheduled to be at 2:15 PM.

Today's finishing Alpe d'Huez climb.
The Race: All 162 stage 18 classified finishers began stage 19. Midway into the stage Edoardo Affini (Visma | Lease a Bike) abandoned.
Here's the race organizer's stage 19 report:
The attackers looked set to battle for another stage win on Friday, stage 19 of the Tour de France 2026, but, once again, there was no resisting Tadej Pogacar (UAE Emirates XRG) when the Maillot Jaune holder set off on the mythical slopes of Alpe d’Huez.
The Slovenian star attacked his GC rivals 13 kilometres from the summit and caught up to Richard Carapaz (EF Education-EasyPost) and Lenny Martinez (Bahrain Victorious) inside the last 3 kilometres. He distanced them as he entered the final kilometre, eventually claiming his fifth victory in this edition, his 26th since his debut in the race in 2020. He passes André Leducq (25 stage wins) and moves closer to Mark Cavendish (35), Eddy Merckx (34) and Bernard Hinault (28). Alpe d’Huez will also host stage 20’s finish on the eve of Sunday’s Paris grand finale.
The stage:
Alpe d’Huez, first leg! After Orcières-Merlette, the peloton head to another iconic venue: the first mountaintop finish in the history of the Tour, and the one that has featured most often! The 32nd finish at Alpe d’Huez will be reached after the legendary 13.8 km ascent, with its 21 hairpins and its average gradient of 8.1%.
Paret-Peintre v Carapaz: the battle continues
The uphill start to Col Bayard (4.7 km at 7.2%) sees the peloton split, and a leading group of 42 riders form. It includes 11 stage winners: Richard Carapaz, alongside his teammates Ben Healy, Sean Quinn andAlex Baudin (EF Education-EasyPost), Thymen Arensman (Netcompany Ineos), Adam Yates (UAE Emirates XRG), Sepp Kuss (Visma-Lease a Bike), Michael Matthews, Ben O’Connor (Jayco AlUla), Ion Izagirre (Cofidis), the green jersey wearer Mads Pedersen (Lidl-Trek) and the polka-dot jersey wearer Valentin Paret-Peintre (Soudal Quick-Step). Lenny Martinez (Bahrain Victorious) is the highest-placed rider in the general classification (7th, +12’50’’).
The battle for the polka-dot jersey is the highlight of the first two climbs to the Col Bayard (km 4.8) and the Col du Noyer (km 25.2). Paret-Peintre wins the uphill sprint ahead of Carapaz on both occasions. The Frenchman thus takes the lead in the mountains classification.
The breakaway explodes
The Maillot Jaune peloton crosses the Col du Noyer four minutes behind the breakaway riders. Tadej Pogacar’s UAE Emirates XRG and Remco Evenepoel’s Red Bull-Bora-Hansgrohe then begin to push the pace to close the gap. But the leaders at the front also count on strong teammates ready to empty their tank to give them a shot at victory at Alpe d’Huez.

On the first-category Col du Noyer. Photo: ASO/Charly Lopez
The gap reaches a maximum of 4’25’’ at the intermediate sprint (Le Périer, km 89.4), where Mads Pedersen (Lidl-Trek) takes full points. His lead against Jasper Philipsen (Alpecin-Premier Tech) for the green jersey is up to 57 points.
The breakaway explodes on the following ascent to Col d'Ornon (cat 2, summit at km . Paret-Peintre is done. Carapaz crests the ascent in the lead. Then Bruno Armirail (Visma-Lease a Bike) sets a strong pace all the way to the bottom of Alpe d’Huez. The attackers begin the ascent with a lead of 3’25’’.
Pogacar flies to the 26th
Richard Carapaz, Sepp Kuss and Lenny Martinez rapidly emerge as the strongest climbers at the front. Behind them, Tadej Pogacar distances his rivals 13 kilometres from the summit. He rapidly catches up to Adam Yates, who helps him for a few hectometres before the Slovenian sets off alone.
At the front, Carapaz attacks again and again. Martinez always reacts and Kuss gets back. The trio fail to collaborate. As Pogacar closes in on them, Carapaz unleashes his power 3 kilometres from the summit. He’s caught a kilometre later by Pogacar and Martinez. The Slovenian drops them just inside the final kilometre and powers to his 26th Tour stage win, the first at Alpe d’Huez.
Behind him, Remco Evenepoel (Red Bull-Bora-Hansgrohe) gains a handful of seconds on Isaac del Toro (UAE Emirates XRG) and a few more on Paul Seixas (Decathlon CMA CGM) on the eve of another battle to Alpe d’Huez.
Complete results:
127.9 kilometers raced at an average speed of 38.767 km/hr
| 1 | Tadej Pogačar | UAE Team Emirates-XRG | 3hr 17min 57sec |
| 2 | Lenny Martinez | Bahrain-Victorious | @ 6sec |
| 3 | Richard Carapaz | EF Education-EasyPost | 0:09 |
| 4 | Sepp Kuss | Team Visma | Lease a Bike | 1:14 |
| 5 | Tobias Halland Johannessen | Uno-X Mobility | 2:07 |
| 6 | Remco Evenepoel | Red Bull-BORA-hansgrohe | 2:29 |
| 7 | Isaac del Toro | UAE Team Emirates-XRG | 2:41 |
| 8 | Paul Seixas | Lidl-Trek | 2:45 |
| 9 | Mattias Skjelmose | Decathlon CMA CGM Team | s.t. |
| 10 | Harold Tejada | XDS Astana Team | 3:22 |
| 11 | Matthew Riccitello | Decathlon CMA CGM Team | 3:25 |
| 12 | Thymen Arensman | Netcompany INEOS | 4:07 |
| 13 | Yannis Voisard | Tudor Pro Cycling Team | 5:32 |
| 14 | Javier Romo | Movistar Team | 6:01 |
| 15 | Clément Braz Afonso | Groupama-FDJ United | 6:10 |
| 16 | Quinn Simmons | Lidl-Trek | 6:26 |
| 17 | Juan Ayuso | Lidl-Trek | s.t. |
| 18 | Ion Izagirre | Cofidis | 6:33 |
| 19 | Tom Pidcock | Team Visma | Lease a Bike | 7:34 |
| 20 | Davide Piganzoli | Pinarello Q36.5 Pro Cycling Team | 8:22 |
| 21 | Ben O'Connor | Team Jayco AlUla | 8:29 |
| 22 | Jordan Jegat | TotalEnergies | 9:07 |
| 23 | Ilan Van Wilder | Soudal Quick-Step | s.t. |
| 24 | George Bennett | NSN Cycling Team | 9:43 |
| 25 | Nicolas Prodhomme | Decathlon CMA CGM Team | 10:06 |
| 26 | Anders Halland Johannessen | Uno-X Mobility | 10:24 |
| 27 | Adam Yates | UAE Team Emirates-XRG | s.t. |
| 28 | Bruno Armirail | Team Visma | Lease a Bike | 10:44 |
| 29 | Tiesj Benoot | Decathlon CMA CGM Team | s.t. |
| 30 | Mattia Cattaneo | Red Bull-BORA-hansgrohe | s.t. |
| 31 | Sean Quinn | EF Education-EasyPost | 11:09 |
| 32 | Michael Matthews | Team Jayco AlUla | 11:50 |
| 33 | Antonio Tiberi | Bahrain-Victorious | s.t. |
| 34 | Maxim Van Gils | Red Bull-BORA-hansgrohe | 13:07 |
| 35 | Jai Hindley | Red Bull-BORA-hansgrohe | s.t. |
| 36 | Guillaume Martin | Groupama-FDJ United | s.t. |
| 37 | Quentin Pacher | Groupama-FDJ United | 15:10 |
| 38 | Mauro Schmid | Team Jayco AlUla | 15:52 |
| 39 | Sergio Higuita | XDS Astana Team | s.t. |
| 40 | Damien Howson | Pinarello Q36.5 Pro Cycling Team | 16:16 |
| 41 | Michael Storer | Tudor Pro Cycling Team | 16:30 |
| 42 | Felix Grossschartner | UAE Team Emirates-XRG | 16:40 |
| 43 | Carlos Verona | Lidl-Trek | s.t. |
| 44 | Tobias Foss | Netcompany INEOS | 16:45 |
| 45 | Mattéo Vercher | TotalEnergies | 16:50 |
| 46 | Felix Engelhardt | Team Jayco AlUla | 17:09 |
| 47 | Derek Gee-West | Lidl-Trek | 17:41 |
| 48 | Marco Frigo | NSN Cycling Team | 17:45 |
| 49 | Sebastian Berwick | Caja Rural-Seguros RGA | 18:28 |
| 50 | Aurélien Paret-Peintre | Decathlon CMA CGM Team | 19:51 |
| 51 | Abel Balderstone | Caja Rural-Seguros RGA | 20:05 |
| 52 | Kévin Vauquelin | Netcompany INEOS | 21:17 |
| 53 | Alex Baudin | EF Education-EasyPost | 21:59 |
| 54 | Xandro Meurisse | Pinarello Q36.5 Pro Cycling Team | 22:04 |
| 55 | Quinten Hermans | Pinarello Q36.5 Pro Cycling Team | s.t. |
| 56 | Jan Tratnik | Red Bull-BORA-hansgrohe | 22:26 |
| 57 | Michael Valgren | EF Education-EasyPost | 22:41 |
| 58 | Matteo Jorgenson | Team Visma | Lease a Bike | 22:43 |
| 59 | Marc Hirschi | Tudor Pro Cycling Team | 23:02 |
| 60 | Simone Velasco | XDS Astana Team | 24:16 |
| 61 | Robert Stannard | Bahrain-Victorious | s.t. |
| 62 | Jonas Abrahamsen | Uno-X Mobility | s.t. |
| 63 | Brent Van Moer | Pinarello Q36.5 Pro Cycling Team | s.t. |
| 64 | Warren Barguil | Team Picnic PostNL | s.t. |
| 65 | Pablo Castrillo | Movistar Team | s.t. |
| 66 | Nelson Oliveira | Movistar Team | s.t. |
| 67 | Damiano Caruso | Bahrain-Victorious | s.t. |
| 68 | Louis Vervaeke | Soudal Quick-Step | 24:32 |
| 69 | Silvan Dillier | Alpecin-Premier Tech | 24:54 |
| 70 | Alex Kirsch | Cofidis | 25:16 |
| 71 | Michel Hessmann | Movistar Team | 25:44 |
| 72 | Dylan van Baarle | Soudal Quick-Step | 25:48 |
| 73 | Luke Plapp | Team Jayco AlUla | s.t. |
| 74 | Victor Campenaerts | Team Visma | Lease a Bike | 25:57 |
| 75 | Mathias Vacek | Lidl-Trek | 26:21 |
| 76 | Mads Pedersen | Lidl-Trek | s.t. |
| 77 | Joris Delbove | TotalEnergies | s.t. |
| 78 | Clément Russo | Groupama-FDJ United | 26:31 |
| 79 | Georg Steinhauser | EF Education-EasyPost | s.t. |
| 80 | Ben Healy | EF Education-EasyPost | s.t. |
| 81 | Georg Zimmermann | Lotto Intermarché | s.t. |
| 82 | Kasper Asgreen | EF Education-EasyPost | 26:55 |
| 83 | Raúl García Pierna | Movistar Team | 27:01 |
| 84 | Alexandre Delettre | TotalEnergies | 27:10 |
| 85 | Mathis Le Berre | TotalEnergies | s.t. |
| 86 | Anthony Turgis | TotalEnergies | s.t. |
| 87 | Nicolas Breuillard | TotalEnergies | s.t. |
| 88 | Tim Marsman | Alpecin-Premier Tech | 27:16 |
| 89 | Romain Grégoire | Groupama-FDJ United | 27:36 |
| 90 | Thibault Guernalec | TotalEnergies | 27:56 |
| 91 | Anders Skaarseth | Uno-X Mobility | 28:04 |
| 92 | Rick Pluimers | Tudor Pro Cycling Team | 28:08 |
| 93 | Mike Teunissen | XDS Astana Team | s.t. |
| 94 | Vlad Van Mechelen | Bahrain-Victorious | 28:12 |
| 95 | Max Walker | EF Education-EasyPost | s.t. |
| 96 | Joel Nicolau | Caja Rural-Seguros RGA | 28:30 |
| 97 | Michał Kwiatkowski | Netcompany INEOS | 28:39 |
| 98 | Egan Bernal | Netcompany INEOS | s.t. |
| 99 | Baptiste Veistroffer | Lotto Intermarché | s.t. |
| 100 | Joshua Tarling | Netcompany INEOS | s.t. |
| 101 | Alveiro Cepeda Jefferson | Movistar Team | s.t. |
| 102 | Fred Wright | Pinarello Q36.5 Pro Cycling Team | s.t. |
| 103 | Luke Durbridge | Team Jayco AlUla | s.t. |
| 104 | Stefano Oldani | Caja Rural-Seguros RGA | 28:56 |
| 105 | Valentin Paret-Peintre | Soudal Quick-Step | 29:00 |
| 106 | Filippo Ganna | Netcompany INEOS | 29:02 |
| 107 | Nils Politt | UAE Team Emirates-XRG | 29:10 |
| 108 | Jasper Stuyven | Soudal Quick-Step | s.t. |
| 109 | Pascal Eenkhoorn | Soudal Quick-Step | s.t. |
| 110 | Mathieu van der Poel | Alpecin-Premier Tech | s.t. |
| 111 | Tim van Dijke | Red Bull-BORA-hansgrohe | s.t. |
| 112 | Alex Aranburu | Cofidis | s.t. |
| 113 | Frank van den Broek | Team Picnic PostNL | s.t. |
| 114 | Florian Vermeersch | UAE Team Emirates-XRG | s.t. |
| 115 | Jonas Rickaert | Alpecin-Premier Tech | s.t. |
| 116 | Jasper Philipsen | Alpecin-Premier Tech | s.t. |
| 117 | Hugo Page | Cofidis | s.t. |
| 118 | Emiel Verstrynge | Alpecin-Premier Tech | s.t. |
| 119 | Magnus Cort | Uno-X Mobility | s.t. |
| 120 | Jenthe Biermans | Cofidis | s.t. |
| 121 | Pavel Bittner | Team Picnic PostNL | 29:16 |
| 122 | Niklas Märkl | Team Picnic PostNL | s.t. |
| 123 | John Degenkolb | Team Picnic PostNL | s.t. |
| 124 | Matej Mohorič | Bahrain-Victorious | s.t. |
| 125 | Søren Wærenskjold | Uno-X Mobility | s.t. |
| 126 | Lennert Van Eetvelt | Lotto Intermarché | s.t. |
| 127 | Toms Skujiņš | Lidl-Trek | 29:19 |
| 128 | Max Kanter | XDS Astana Team | 29:33 |
| 129 | Nicolas Vinokurov | XDS Astana Team | s.t. |
| 130 | Aaron Gate | XDS Astana Team | s.t. |
| 131 | Lewis Askey | NSN Cycling Team | 29:40 |
| 132 | Krists Neilands | NSN Cycling Team | 29:58 |
| 133 | Jakub Otruba | Caja Rural-Seguros RGA | s.t. |
| 134 | Edward Planckaert | Alpecin-Premier Tech | 30:01 |
| 135 | Matis Louvel | NSN Cycling Team | s.t. |
| 136 | Nico Denz | Red Bull-BORA-hansgrohe | 30:08 |
| 137 | Jake Stewart | NSN Cycling Team | 30:20 |
| 138 | Biniam Girmay | NSN Cycling Team | s.t. |
| 139 | Phil Bauhaus | Bahrain-Victorious | 30:44 |
| 140 | Daan Hoole | Decathlon CMA CGM Team | 31:06 |
| 141 | Pascal Ackermann | Team Jayco AlUla | 31:10 |
| 142 | Xabier Mikel Azparren | Pinarello Q36.5 Pro Cycling Team | 31:19 |
| 143 | Tim Wellens | UAE Team Emirates-XRG | 31:21 |
| 144 | Kamil Gradek | Bahrain-Victorious | 31:23 |
| 145 | Piet Allegaert | Cofidis | 31:38 |
| 146 | Davide Ballerini | XDS Astana Team | 31:48 |
| 147 | Olav Kooij | Decathlon CMA CGM Team | s.t. |
| 148 | Julius van den Berg | Team Picnic PostNL | 31:56 |
| 149 | Cees Bol | Decathlon CMA CGM Team | s.t. |
| 150 | Huub Artz | Lotto Intermarché | s.t. |
| 151 | Robbe Dhondt | Team Picnic PostNL | s.t. |
| 152 | Milan Fretin | Cofidis | 32:07 |
| 153 | Liam Slock | Lotto Intermarché | 32:19 |
| 154 | Benjamin Thomas | Cofidis | s.t. |
| 155 | Lorenzo Germani | Groupama-FDJ United | s.t. |
| 156 | Ewen Costiou | Groupama-FDJ United | 32:24 |
| 157 | Dorian Godon | Netcompany INEOS | 32:51 |
| 158 | Marco Haller | Tudor Pro Cycling Team | s.t. |
| 159 | Julian Alaphilippe | Tudor Pro Cycling Team | s.t. |
| 160 | Per Strand Hagenes | Team Visma | Lease a Bike | 33:01 |
| DNF | Edoardo Affini | Team Visma | Lease a Bike | |
| DNF | Einer Rubio | Movistar Team |
GC after stage 19:
2,985.4 kilometers raced so far at an average speed of 43.978 km/hr
| 1 | Tadej Pogačar | UAE Team Emirates-XRG | 67hr 53min 0sec |
| 2 | Remco Evenepoel | Red Bull-BORA-hansgrohe | @ 7min 11sec |
| 3 | Isaac del Toro | UAE Team Emirates-XRG | 9:42 |
| 4 | Paul Seixas | Decathlon CMA CGM Team | 10:06 |
| 5 | Lenny Martinez | Bahrain-Victorious | 13:00 |
| 6 | Mattias Skjelmose | Lidl-Trek | 13:09 |
| 7 | Juan Ayuso | Lidl-Trek | 15:58 |
| 8 | Tom Pidcock | EF Education-EasyPost | 21:15 |
| 9 | Richard Carapaz | Pinarello Q36.5 Pro Cycling Team | 21:30 |
| 10 | Jordan Jegat | TotalEnergies | 23:21 |
| 11 | Yannis Voisard | Tudor Pro Cycling Team | 30:00 |
| 12 | Ilan Van Wilder | Soudal Quick-Step | 35:47 |
| 13 | TobiasHalland Johannessen | Uno-X Mobility | 50:58 |
| 14 | Davide Piganzoli | Team Visma | Lease a Bike | 55:57 |
| 15 | Egan Bernal | Team Visma | Lease a Bike | 1:02:01 |
| 16 | Sepp Kuss | Netcompany INEOS | 1:17:35 |
| 17 | Nicolas Prodhomme | Decathlon CMA CGM Team | 1:17:55 |
| 18 | Adam Yates | UAE Team Emirates-XRG | 1:21:58 |
| 19 | Jai Hindley | Red Bull-BORA-hansgrohe | 1:22:18 |
| 20 | Tiesj Benoot | Decathlon CMA CGM Team | 1:25:12 |
| 21 | Quinn Simmons | Lidl-Trek | 1:26:31 |
| 22 | Sean Quinn | EF Education-EasyPost | 1:30:42 |
| 23 | Carlos Verona | Lidl-Trek | 1:39:11 |
| 24 | Pablo Castrillo | Movistar Team | 1:51:37 |
| 25 | Derek Gee-West | Lidl-Trek | 1:51:39 |
| 26 | Thymen Arensman | Netcompany INEOS | 1:51:45 |
| 27 | Matteo Jorgenson | Team Visma | Lease a Bike | 1:59:24 |
| 28 | Matthew Riccitello | Decathlon CMA CGM Team | 2:05:17 |
| 29 | Guillaume Martin | Groupama-FDJ United | 2:08:04 |
| 30 | Harold Tejada | XDS Astana Team | 2:09:32 |
| 31 | Maxim Van Gils | Red Bull-BORA-hansgrohe | 2:12:34 |
| 32 | Felix Grossschartner | UAE Team Emirates-XRG | 2:13:21 |
| 33 | Raúl García Pierna | Movistar Team | 2:19:01 |
| 34 | Mauro Schmid | Team Jayco AlUla | 2:19:53 |
| 35 | Ben O'Connor | Team Jayco AlUla | 2:20:57 |
| 36 | Kévin Vauquelin | Netcompany INEOS | 2:22:34 |
| 37 | Quinten Hermans | Pinarello Q36.5 Pro Cycling Team | 2:26:40 |
| 38 | Antonio Tiberi | Bahrain-Victorious | 2:28:21 |
| 39 | Mattia Cattaneo | Red Bull-BORA-hansgrohe | 2:29:10 |
| 40 | Ion Izagirre | Cofidis | 2:31:30 |
| 41 | Sergio Higuita | XDS Astana Team | 2:34:34 |
| 42 | Clément Braz Afonso | Groupama-FDJ United | 2:34:46 |
| 43 | Alex Baudin | EF Education-EasyPost | 2:35:46 |
| 44 | Valentin Paret-Peintre | Soudal Quick-Step | 2:36:33 |
| 45 | Lennert Van Eetvelt | Lotto Intermarché | 2:36:35 |
| 46 | Tobias Foss | Netcompany INEOS | 2:37:59 |
| 47 | Abel Balderstone | Caja Rural-Seguros RGA | 2:45:43 |
| 48 | Aurélien Paret-Peintre | Decathlon CMA CGM Team | 2:53:33 |
| 49 | Mathias Vacek | Lidl-Trek | 2:54:30 |
| 50 | Marc Hirschi | Tudor Pro Cycling Team | 2:54:40 |
| 51 | Michael Matthews | Team Jayco AlUla | 2:58:52 |
| 52 | Michael Valgren | EF Education-EasyPost | 2:59:03 |
| 53 | Joris Delbove | TotalEnergies | 3:04:18 |
| 54 | Javier Romo | Movistar Team | 3:07:44 |
| 55 | Nicolas Breuillard | TotalEnergies | 3:08:25 |
| 56 | Xandro Meurisse | Pinarello Q36.5 Pro Cycling Team | 3:10:30 |
| 57 | Romain Grégoire | Groupama-FDJ United | 3:11:17 |
| 58 | Quentin Pacher | Groupama-FDJ United | 3:11:46 |
| 59 | Damiano Caruso | Bahrain-Victorious | 3:15:44 |
| 60 | Alexandre Delettre | TotalEnergies | 3:23:54 |
| 61 | Anders Skaarseth | Uno-X Mobility | 3:24:24 |
| 62 | Ben Healy | EF Education-EasyPost | 3:25:09 |
| 63 | Bruno Armirail | Team Visma | Lease a Bike | 3:29:21 |
| 64 | George Bennett | NSN Cycling Team | 3:37:30 |
| 65 | Clément Russo | Groupama-FDJ United | 3:41:42 |
| 66 | Louis Vervaeke | Soudal Quick-Step | 3:41:45 |
| 67 | Felix Engelhardt | Team Jayco AlUla | 3:43:48 |
| 68 | Nelson Oliveira | Movistar Team | 3:43:51 |
| 69 | Jasper Stuyven | Soudal Quick-Step | 3:44:06 |
| 70 | Vlad Van Mechelen | Bahrain-Victorious | 3:44:31 |
| 71 | Rick Pluimers | Tudor Pro Cycling Team | 3:45:48 |
| 72 | Nils Politt | UAE Team Emirates-XRG | 3:47:08 |
| 73 | Mathieu van der Poel | Alpecin-Premier Tech | 3:47:45 |
| 74 | Mathis Le Berre | TotalEnergies | 3:48:06 |
| 75 | Anders Halland Johannessen | Uno-X Mobility | 3:48:31 |
| 76 | Tim Wellens | UAE Team Emirates-XRG | 3:50:03 |
| 77 | Mads Pedersen | Lidl-Trek | 3:52:59 |
| 78 | Ewen Costiou | Groupama-FDJ United | 3:53:40 |
| 79 | Victor Campenaerts | Team Visma | Lease a Bike | 3:56:44 |
| 80 | Jonas Abrahamsen | Uno-X Mobility | 3:56:47 |
| 81 | Kasper Asgreen | EF Education-EasyPost | 3:56:54 |
| 82 | Marco Frigo | NSN Cycling Team | 3:58:28 |
| 83 | Jan Tratnik | Red Bull-BORA-hansgrohe | 3:58:59 |
| 84 | Alex Aranburu | Cofidis | 3:59:12 |
| 85 | Mattéo Vercher | TotalEnergies | 4:00:01 |
| 86 | Brent Van Moer | Pinarello Q36.5 Pro Cycling Team | 4:01:51 |
| 87 | Michael Storer | Tudor Pro Cycling Team | 4:03:39 |
| 88 | Sebastian Berwick | Caja Rural-Seguros RGA | 4:05:21 |
| 89 | Georg Zimmermann | Lotto Intermarché | 4:05:38 |
| 90 | Matej Mohorič | Bahrain-Victorious | 4:05:47 |
| 91 | Damien Howson | Pinarello Q36.5 Pro Cycling Team | 4:07:31 |
| 92 | Lorenzo Germani | Groupama-FDJ United | 4:08:12 |
| 93 | Luke Plapp | Team Jayco AlUla | 4:08:48 |
| 94 | Toms Skujiņš | Lidl-Trek | 4:09:33 |
| 95 | Nico Denz | Red Bull-BORA-hansgrohe | 4:13:33 |
| 96 | Warren Barguil | Team Picnic PostNL | 4:15:08 |
| 97 | Magnus Cort | Uno-X Mobility | 4:15:55 |
| 98 | Emiel Verstrynge | Alpecin-Premier Tech | 4:18:28 |
| 99 | Nicolas Vinokurov | XDS Astana Team | 4:22:29 |
| 100 | Frank van den Broek | Team Picnic PostNL | 4:27:30 |
| 101 | Strand Hagenes Per | Team Visma | Lease a Bike | 4:27:57 |
| 102 | Mikel Azparren Xabier | Pinarello Q36.5 Pro Cycling Team | 4:29:40 |
| 103 | Alveiro Cepeda Jefferson | Movistar Team | 4:30:37 |
| 104 | Simone Velasco | XDS Astana Team | 4:33:16 |
| 105 | Max Walker | EF Education-EasyPost | 4:33:49 |
| 106 | Robert Stannard | Bahrain-Victorious | 4:34:29 |
| 107 | Luke Durbridge | Team Jayco AlUla | 4:34:35 |
| 108 | Thibault Guernalec | TotalEnergies | 4:34:38 |
| 109 | Anthony Turgis | TotalEnergies | 4:35:33 |
| 110 | Michał Kwiatkowski | Netcompany INEOS | s.t. |
| 111 | Michel Hessmann | Movistar Team | 4:35:55 |
| 112 | Jakub Otruba | Caja Rural-Seguros RGA | 4:37:08 |
| 113 | Tim van Dijke | Red Bull-BORA-hansgrohe | 4:38:00 |
| 114 | Edward Planckaert | Alpecin-Premier Tech | 4:43:27 |
| 115 | Georg Steinhauser | EF Education-EasyPost | 4:44:06 |
| 116 | Benjamin Thomas | Cofidis | 4:44:17 |
| 117 | Jonas Rickaert | Alpecin-Premier Tech | 4:46:41 |
| 118 | Robbe Dhondt | Team Picnic PostNL | 4:46:42 |
| 119 | Florian Vermeersch | UAE Team Emirates-XRG | 4:47:45 |
| 120 | Joshua Tarling | Netcompany INEOS | 4:48:22 |
| 121 | Aaron Gate | XDS Astana Team | 4:48:50 |
| 122 | Hugo Page | Cofidis | 4:49:13 |
| 123 | Alex Kirsch | Cofidis | 4:49:59 |
| 124 | Filippo Ganna | Netcompany INEOS | 4:50:54 |
| 125 | Mike Teunissen | XDS Astana Team | 4:53:15 |
| 126 | Stefano Oldani | Caja Rural-Seguros RGA | 4:53:30 |
| 127 | Fred Wright | Pinarello Q36.5 Pro Cycling Team | 4:54:03 |
| 128 | Liam Slock | Lotto Intermarché | 4:54:09 |
| 129 | Dylan van Baarle | Soudal Quick-Step | 4:58:47 |
| 130 | Daan Hoole | Decathlon CMA CGM Team | 4:59:21 |
| 131 | Joel Nicolau | Caja Rural-Seguros RGA | 5:03:31 |
| 132 | Huub Artz | Lotto Intermarché | 5:03:51 |
| 133 | Jasper Philipsen | Alpecin-Premier Tech | 5:04:13 |
| 134 | Dorian Godon | Netcompany INEOS | 5:04:16 |
| 135 | Tim Marsman | Alpecin-Premier Tech | 5:04:28 |
| 136 | Krists Neilands | NSN Cycling Team | 5:05:15 |
| 137 | Søren Wærenskjold | Uno-X Mobility | 5:06:47 |
| 138 | Julian Alaphilippe | Tudor Pro Cycling Team | 5:08:12 |
| 139 | Silvan Dillier | Alpecin-Premier Tech | 5:08:30 |
| 140 | Pavel Bittner | Team Picnic PostNL | 5:11:36 |
| 141 | Biniam Girmay | NSN Cycling Team | 5:11:51 |
| 142 | Niklas Märkl | Team Picnic PostNL | 5:12:37 |
| 143 | Max Kanter | XDS Astana Team | 5:15:23 |
| 144 | Pascal Ackermann | Team Jayco AlUla | 5:15:25 |
| 145 | Pascal Eenkhoorn | Soudal Quick-Step | 5:18:35 |
| 146 | Jenthe Biermans | Cofidis | 5:18:56 |
| 147 | Marco Haller | Tudor Pro Cycling Team | 5:20:06 |
| 148 | John Degenkolb | Team Picnic PostNL | 5:22:24 |
| 149 | Baptiste Veistroffer | Lotto Intermarché | 5:23:31 |
| 150 | Milan Fretin | Cofidis | 5:27:04 |
| 151 | Olav Kooij | Decathlon CMA CGM Team | 5:27:12 |
| 152 | Jake Stewart | NSN Cycling Team | 5:28:18 |
| 153 | Lewis Askey | NSN Cycling Team | 5:29:36 |
| 154 | Piet Allegaert | Cofidis | 5:29:57 |
| 155 | Davide Ballerini | XDS Astana Team | 5:31:18 |
| 156 | Julius van den Berg | Team Picnic PostNL | 5:34:53 |
| 157 | Phil Bauhaus | Bahrain-Victorious | 5:35:06 |
| 158 | Matis Louvel | NSN Cycling Team | 5:36:24 |
| 159 | Kamil Gradek | Bahrain-Victorious | 5:37:29 |
| 160 | Cees Bol | Decathlon CMA CGM Team | 5:40:02 |
Stage 19 map & profiles:

Stage 19 map

Stage 19 profile

Col du Noyer profile

Alpe d'Huez profile
Stage 19 photos by Fotoreporter Sirotti:

A panorama of part of the Alpe d'Huez ascent.

A closer view

More than a few race fans came to watch.

Riders making their way up the mountain

Tobias Halland Johannessen

Isaac del Toro followed by Mattias Skjelmose.

Fourth-place finisher Sepp Kuss

Richard Carapaz was third.

Lenny Martinez finishes second.

Tadej Pogacar wins the stage. Second-place Lenny Martinez can be seen behind him.

Tadej Pogacar has only two more stages to go to claim his fifth Tour and join the greatest Tour riders.