
Friday, May 30: Stage 19, Biella - Champoluc, 166 km
Stage 19 map & profile | Stage 19 photos

Stage winner Nicolas Prodhomme beats his nearest chaser by nearly a minute. Sirotti photo
James Witherell's book Bicycle History: A Chronological History of People, Races and Technology is available in both print and Kindle eBook formats. To get your copy just click on the Amazon link on the right.
Weather at the finish city of Champoluc at 2:20 PM, local time: 21C (69F), sunny, with the wind from the east at 14 km/hr (9 mph). There is just a 1% chance of rain.
The stage: An Alpine tappone made up entirely of climbs and descents. After just 4 km comes the first ascent to Croce Serra, which leads into the Dora Baltea Valley. A short false flat brings the riders to Verrès, and then it’s three long climbs of about 15 km each, without breaks in between: Col Tzecore (last 4 km over 12%), Col de Saint-Pantaléon, and Col de Joux. After descending to Brusson, the final part begins, always uphill, with the steep pass through Antagnod (up to 11%) ending 5 km from the line.
Final kilometers: At about 5 km to go, a descent begins—initially gentle, then steeper from 3 km out, with a series of switchbacks leading into the final kilometer through Champoluc. The last 1 km includes cobbles up to 400 m from the line, then a steady rise to the finish. Final straight: 80 m on 7-metre-wide asphalt.
This is the 2025 Giro d'Italia's Queen Stage.
The race: The race organizer posted this comment about the stage: "Let’s be honest, the mountains disappointed today...There was every opportunity for an epic stage, but the GC contenders lacked either the courage or the legs to make it happen. In the end, it’s Isaac Del Toro who has the last laugh: he followed Carapaz’s attack, then outsprinted him at the line, gaining 2 seconds on him and 28 seconds on everyone else."
Here's the report from GC leader Isaac del Toro's UAE Team Emriates:
In a performance that underscored both his strength and tactical maturity, Isaac Del Toro secured second place in today’s mountainous Stage 19 of the Giro d’Italia ahead of his closest rival Richard Carapaz (EF Education Easypost), tightening his grip on the overall lead and reinforcing his status as the man to beat with just two stages remaining.

A bit more than 100 km to go. The peloton is 2min 30sec behind a large break. RCS photo
The 20-year-old Mexican phenomenon crossed the line just seconds behind the stage winner Nicolas Prudhomme (Decathlon-AG2R) after a grueling day in the Dolomites, extending his advantage over key GC rivals on terrain that has historically defined the Giro. With the maglia rosa still firmly on his shoulders, Del Toro faces one final major test tomorrow on the stage from Verrès to Sestrière (205km) which tackles the gruelling Colle delle Finestre.

Stage winner Nicolas Prodhomme on his solo break.
Del Toro’s performance topped-off a very solid performance from UAE Team Emirates-XRG which saw Brandon McNulty (5th) and Rafal Majka (8th) enter the top-10 on the stage after some superb pacing on the climbs.
Del Toro: “It’s incredible. I cannot believe I’m this guy – this is such an incredible thing. I cannot believe I was up there. It’s just great to be here, and thanks to the teammates, I can do these things and all the confidence they give to me.”

Nicolas Prodhomme wins stage 19.
The retention of the pink jersey means that tomorrow Del Toro becomes the youngest rider to wear the pink jersey for 11 consecutive days, with the previous record held by the Italian legend Fausto Coppi.
Complete results:
166 kilometers raced at an average speed of 34.276 km/hr
| 1 | Nicolas Prodhomme | Decathlon AG2R La Mondiale | 4hr 50min 35sec |
| 2 | Isaac del Toro | UAE Team Emirates-XRG | @ 58sec |
| 3 | Richard Carapaz | EF Education-EasyPost | s.t. |
| 4 | Damiano Caruso | Bahrain Victorious | 1:22 |
| 5 | Brandon McNulty | UAE Team Emirates-XRG | s.t. |
| 6 | Egan Bernal | INEOS Grenadiers | s.t. |
| 7 | Simon Yates | Team Visma | Lease a Bike | s.t. |
| 8 | Rafal Majka | UAE Team Emirates-XRG | s.t. |
| 9 | Antonio Tiberi | Bahrain Victorious | s.t. |
| 10 | Einer Rubio | Movistar Team | s.t. |
| 11 | Derek Gee | Israel-Premier Tech | s.t. |
| 12 | Giulio Pellizzari | Red Bull-BORA-hansgrohe | s.t. |
| 13 | Michael Storer | Tudor Pro Cycling Team | 2:17 |
| 14 | Louis Meintjes | Intermarché-Wanty | 5:17 |
| 15 | Davide Piganzoli | Team Polti-VisitMalta | 5:52 |
| 16 | Florian Stork | Tudor Pro Cycling Team | s.t. |
| 17 | Max Poole | Team Picnic PostNL | 7:36 |
| 18 | Adam Yates | UAE Team Emirates-XRG | 8:58 |
| 19 | Igor Arrieta | UAE Team Emirates-XRG | 11:23 |
| 20 | Wilco Kelderman | Team Visma | Lease a Bike | 14:39 |
| 21 | Jonathan Castroviejo | INEOS Grenadiers | s.t. |
| 22 | Carlos Verona | Lidl-Trek | s.t. |
| 23 | Steven Kruijswijk | Team Visma | Lease a Bike | s.t. |
| 24 | Pello Bilbao | Bahrain Victorious | 16:34 |
| 25 | Marco Frigo | Israel-Premier Tech | s.t. |
| 26 | Sylvain Moniquet | Cofidis | s.t. |
| 27 | Gijs Leemreize | Team Picnic PostNL | 16:42 |
| 28 | Romain Bardet | Team Picnic PostNL | s.t. |
| 29 | Bart Lemmen | Team Visma | Lease a Bike | 16:53 |
| 30 | Alessandro Tonelli | Team Polti-VisitMalta | 17:41 |
| 31 | Lorenzo Germani | Groupama-FDJ | s.t. |
| 32 | Chris Harper | Team Jayco-AlUla | s.t. |
| 33 | Diego Ulissi | XDS Astana Team | 17:55 |
| 34 | Embret Svestad-Bårdseng | Arkea-B&B Hotels | s.t. |
| 35 | James Knox | Soudal Quick-Step | s.t. |
| 36 | Sergio Samitier | Cofidis | s.t. |
| 37 | Nairo Quintana | Movistar Team | s.t. |
| 38 | Edoardo Zambanini | Bahrain Victorious | s.t. |
| 39 | Fausto Masnada | XDS Astana Team | s.t. |
| 40 | Christian Scaroni | XDS Astana Team | s.t. |
| 41 | Mark Donovan | Q36.5 Pro Cycling Team | 18:03 |
| 42 | Jefferson Cepeda | Movistar Team | 18:05 |
| 43 | Mattia Cattaneo | Soudal Quick-Step | s.t. |
| 44 | Tom Pidcock | Q36.5 Pro Cycling Team | s.t. |
| 45 | Yannis Voisard | Tudor Pro Cycling Team | 18:17 |
| 46 | Wout Poels | XDS Astana Team | 18:23 |
| 47 | Hugo Houle | Israel-Premier Tech | 18:37 |
| 48 | Damien Howson | Q36.5 Pro Cycling Team | 20:06 |
| 49 | Milan Vader | Q36.5 Pro Cycling Team | s.t. |
| 50 | Georg Steinhauser | EF Education-EasyPost | 22:59 |
| 51 | Paul Double | Team Jayco-AlUla | 24:02 |
| 52 | Lorenzo Fortunato | XDS Astana Team | s.t. |
| 53 | Alexander Cepeda | EF Education-EasyPost | 24:21 |
| 54 | Filippo Baroncini | UAE Team Emirates-XRG | 27:03 |
| 55 | Gianmarco Garofoli | Soudal Quick-Step | s.t. |
| 56 | Jan Tratnik | Red Bull-BORA-hansgrohe | 28:42 |
| 57 | Giovanni Aleotti | Red Bull-BORA-hansgrohe | s.t. |
| 58 | Quinten Hermans | Alpecin-Deceuninck | 30:17 |
| 59 | Jimmy Janssens | Alpecin-Deceuninck | s.t. |
| 60 | Martin Marcellusi | VF Group-Bardiani CSF-Faizanè | 31:08 |
| 61 | David Gaudu | Groupama-FDJ | 32:04 |
| 62 | Chris Hamilton | Team Picnic PostNL | 32:47 |
| 63 | Simon Clarke | Israel-Premier Tech | s.t. |
| 64 | Luca Covili | VF Group-Bardiani CSF-Faizanè | s.t. |
| 65 | Nick Schultz | Israel-Premier Tech | s.t. |
| 66 | Simone Petilli | Intermarché-Wanty | s.t. |
| 67 | Rémy Rochas | Groupama-FDJ | s.t. |
| 68 | Albert Torres | Movistar Team | s.t. |
| 69 | Owain Doull | EF Education-EasyPost | s.t. |
| 70 | Davide Formolo | Movistar Team | s.t. |
| 71 | Mikkel Honore | EF Education-EasyPost | s.t. |
| 72 | James Shaw | EF Education-EasyPost | s.t. |
| 73 | Quentin Pacher | Groupama-FDJ | s.t. |
| 74 | Darren Rafferty | EF Education-EasyPost | s.t. |
| 75 | Daniel Martinez | Red Bull-BORA-hansgrohe | s.t. |
| 76 | Kevin Geniets | Groupama-FDJ | s.t. |
| 77 | Patrick Konrad | Lidl-Trek | s.t. |
| 78 | Filippo Zana | Team Jayco-AlUla | s.t. |
| 79 | Rick Pluimers | Tudor Pro Cycling Team | 35:56 |
| 80 | Kasper Asgreen | EF Education-EasyPost | 36:28 |
| 81 | Mathias Vacek | Lidl-Trek | s.t. |
| 82 | Andrea Vendrame | Decathlon AG2R La Mondiale | s.t. |
| 83 | Jakob Fuglsang | Israel-Premier Tech | s.t. |
| 84 | Fran Miholjevic | Bahrain Victorious | s.t. |
| 85 | Davide De Pretto | Team Jayco-AlUla | s.t. |
| 86 | Timo Kielich | Alpecin-Deceuninck | 36:36 |
| 87 | Josef Cerný | Soudal Quick-Step | s.t. |
| 88 | Clément Davy | Groupama-FDJ | s.t. |
| 89 | Lorenzo Milesi | Movistar Team | s.t. |
| 90 | Wout van Aert | Team Visma | Lease a Bike | s.t. |
| 91 | Francesco Busatto | Intermarché-Wanty | s.t. |
| 92 | Martin Tjøtta | Arkea-B&B Hotels | s.t. |
| 93 | Lawrence Warbasse | Tudor Pro Cycling Team | s.t. |
| 94 | Kevin Colleoni | Intermarché-Wanty | s.t. |
| 95 | Nicola Conci | XDS Astana Team | s.t. |
| 96 | Stan Dewulf | Decathlon AG2R La Mondiale | s.t. |
| 97 | Anton Kuzmin | XDS Astana Team | s.t. |
| 98 | Davide Bais | Team Polti-VisitMalta | s.t. |
| 99 | Dylan van Baarle | Team Visma | Lease a Bike | s.t. |
| 100 | Felix Engelhardt | Team Jayco-AlUla | s.t. |
| 101 | Xabier Azparren | Q36.5 Pro Cycling Team | s.t. |
| 102 | Emils Liepins | Q36.5 Pro Cycling Team | s.t. |
| 103 | Thymen Arensman | INEOS Grenadiers | s.t. |
| 104 | Ben Turner | INEOS Grenadiers | s.t. |
| 105 | Sven Erik Bystrøm | Groupama-FDJ | s.t. |
| 106 | Kim Heiduk | INEOS Grenadiers | s.t. |
| 107 | Orluis Aular | Movistar Team | s.t. |
| 108 | Gianni Moscon | Red Bull-BORA-hansgrohe | 36:44 |
| 109 | Daan Hoole | Lidl-Trek | 37:02 |
| 110 | Mads Pedersen | Lidl-Trek | s.t. |
| 111 | Enzo Paleni | Groupama-FDJ | s.t. |
| 112 | Kaden Groves | Alpecin-Deceuninck | 40:08 |
| 113 | Lucas Hamilton | INEOS Grenadiers | s.t. |
| 114 | Fabio Van den Bossche | Alpecin-Deceuninck | s.t. |
| 115 | Edward Planckaert | Alpecin-Deceuninck | s.t. |
| 116 | Max Kanter | XDS Astana Team | s.t. |
| 117 | Dries De Bondt | Decathlon AG2R La Mondiale | s.t. |
| 118 | Alexander Krieger | Tudor Pro Cycling Team | s.t. |
| 119 | Anthony Perez | Cofidis | s.t. |
| 120 | Dorian Godon | Decathlon AG2R La Mondiale | s.t. |
| 121 | Simon Guglielmi | Arkea-B&B Hotels | s.t. |
| 122 | Enrico Zanoncello | VF Group-Bardiani CSF-Faizanè | 41:36 |
| 123 | Manuele Tarozzi | VF Group-Bardiani CSF-Faizanè | s.t. |
| 124 | Stefano Oldani | Cofidis | s.t. |
| 125 | Jan Maas | Cofidis | s.t. |
| 126 | Michael Hepburn | Team Jayco-AlUla | s.t. |
| 127 | Alessandro Verre | Arkea-B&B Hotels | s.t. |
| 128 | Giosue Epis | Arkea-B&B Hotels | s.t. |
| 129 | Filippo Magli | VF Group-Bardiani CSF-Faizanè | s.t. |
| 130 | Ethan Hayter | Soudal Quick-Step | s.t. |
| 131 | Mattia Bais | Team Polti-VisitMalta | s.t. |
| 132 | Jensen Plowright | Alpecin-Deceuninck | s.t. |
| 133 | Laurens Huys | Arkea-B&B Hotels | s.t. |
| 134 | Mirco Maestri | Team Polti-VisitMalta | s.t. |
| 135 | Gijs Van Hoecke | Intermarché-Wanty | s.t. |
| 136 | Gerben Thijssen | Intermarché-Wanty | s.t. |
| 137 | Jon Barrenetxea | Movistar Team | s.t. |
| 138 | Giovanni Lonardi | Team Polti-VisitMalta | s.t. |
| 139 | Nico Denz | Red Bull-BORA-hansgrohe | s.t. |
| 140 | Andrea Pietrobon | Team Polti-VisitMalta | s.t. |
| 141 | Corbin Strong | Israel-Premier Tech | 41:45 |
| 142 | Francisco Muñoz | Team Polti-VisitMalta | 41:53 |
| 143 | Nicolas Debeaumarché | Cofidis | 41:54 |
| 144 | Jonathan Lastra | Cofidis | s.t. |
| 145 | Luke Lamperti | Soudal Quick-Step | 41:59 |
| 146 | Jacopo Mosca | Lidl-Trek | s.t. |
| 147 | Edoardo Affini | Team Visma | Lease a Bike | s.t. |
| 148 | Luca Mozzato | Arkea-B&B Hotels | s.t. |
| 149 | Olav Kooij | Team Visma | Lease a Bike | s.t. |
| 150 | Matteo Moschetti | Q36.5 Pro Cycling Team | s.t. |
| 151 | Filippo Fiorelli | VF Group-Bardiani CSF-Faizanè | s.t. |
| 152 | Taco van der Hoorn | Intermarché-Wanty | s.t. |
| 153 | Casper van Uden | Team Picnic PostNL | s.t. |
| 154 | Alex Edmondson | Team Picnic PostNL | s.t. |
| 155 | Niklas Märkl | Team Picnic PostNL | s.t. |
| 156 | Maikel Zijlaard | Tudor Pro Cycling Team | s.t. |
| 157 | Tord Gudmestad | Decathlon AG2R La Mondiale | s.t. |
| 158 | Sam Bennett | Decathlon AG2R La Mondiale | s.t. |
| 159 | Matevz Govekar | Bahrain Victorious | s.t. |
GC after stage 19:
3,095.3 kilometers raced so far at an average speed of 41.942 km/hr
| 1 | Isaac del Toro | UAE Team Emirates-XRG | 73hr 47min 59sec |
| 2 | Richard Carapaz | EF Education-EasyPost | @ 43sec |
| 3 | Simon Yates | Team Visma | Lease a Bike | 1:21 |
| 4 | Derek Gee | Israel-Premier Tech | 2:27 |
| 5 | Damiano Caruso | Bahrain Victorious | 3:36 |
| 6 | Egan Bernal | INEOS Grenadiers | 5:13 |
| 7 | Giulio Pellizzari | Red Bull-BORA-hansgrohe | 5:32 |
| 8 | Einer Rubio | Movistar Team | 6:39 |
| 9 | Michael Storer | Tudor Pro Cycling Team | 9:11 |
| 10 | Brandon McNulty | UAE Team Emirates-XRG | 9:33 |
| 11 | Max Poole | Team Picnic PostNL | 14:44 |
| 12 | Antonio Tiberi | Bahrain Victorious | 15:12 |
| 13 | Adam Yates | UAE Team Emirates-XRG | 15:51 |
| 14 | Davide Piganzoli | Team Polti-VisitMalta | 16:31 |
| 15 | Rafal Majka | UAE Team Emirates-XRG | 18:30 |
| 16 | Nicolas Prodhomme | Decathlon AG2R La Mondiale | 24:03 |
| 17 | Tom Pidcock | Q36.5 Pro Cycling Team | 27:08 |
| 18 | Louis Meintjes | Intermarché-Wanty | 40:41 |
| 19 | James Knox | Soudal Quick-Step | 45:13 |
| 20 | Diego Ulissi | XDS Astana Team | 47:00 |
| 21 | Florian Stork | Tudor Pro Cycling Team | 48:36 |
| 22 | Embret Svestad-Bårdseng | Arkea-B&B Hotels | 49:41 |
| 23 | Nairo Quintana | Movistar Team | 55:45 |
| 24 | Marco Frigo | Israel-Premier Tech | 1:08:21 |
| 25 | Edoardo Zambanini | Bahrain Victorious | 1:09:34 |
| 26 | Lorenzo Fortunato | XDS Astana Team | 1:11:52 |
| 27 | Romain Bardet | Team Picnic PostNL | 1:15:46 |
| 28 | Chris Harper | Team Jayco-AlUla | 1:16:16 |
| 29 | Thymen Arensman | INEOS Grenadiers | 1:16:27 |
| 30 | Igor Arrieta | UAE Team Emirates-XRG | 1:36:12 |
| 31 | Wilco Kelderman | Team Visma | Lease a Bike | s.t. |
| 32 | Yannis Voisard | Tudor Pro Cycling Team | 1:38:14 |
| 33 | Pello Bilbao | Bahrain Victorious | 1:43:37 |
| 34 | Steven Kruijswijk | Team Visma | Lease a Bike | 1:47:59 |
| 35 | Davide Formolo | Movistar Team | 1:48:00 |
| 36 | Jefferson Cepeda | Movistar Team | 1:48:23 |
| 37 | Kevin Geniets | Groupama-FDJ | 1:50:26 |
| 38 | Alexander Cepeda | EF Education-EasyPost | 1:51:02 |
| 39 | Mattia Cattaneo | Soudal Quick-Step | 1:52:53 |
| 40 | Christian Scaroni | XDS Astana Team | 1:53:06 |
| 41 | Gianmarco Garofoli | Soudal Quick-Step | 1:53:15 |
| 42 | Damien Howson | Q36.5 Pro Cycling Team | 1:53:42 |
| 43 | Andrea Vendrame | Decathlon AG2R La Mondiale | 1:54:01 |
| 44 | Fausto Masnada | XDS Astana Team | 1:54:33 |
| 45 | Bart Lemmen | Team Visma | Lease a Bike | 1:55:59 |
| 46 | Alessandro Tonelli | Team Polti-VisitMalta | 1:56:24 |
| 47 | Martin Tjøtta | Arkea-B&B Hotels | 2:07:23 |
| 48 | Wout Poels | XDS Astana Team | 2:07:29 |
| 49 | Filippo Zana | Team Jayco-AlUla | 2:07:57 |
| 50 | Mark Donovan | Q36.5 Pro Cycling Team | 2:08:40 |
| 51 | Gijs Leemreize | Team Picnic PostNL | 2:08:49 |
| 52 | Rémy Rochas | Groupama-FDJ | 2:09:09 |
| 53 | Daniel Martinez | Red Bull-BORA-hansgrohe | 2:11:33 |
| 54 | Mathias Vacek | Lidl-Trek | 2:11:43 |
| 55 | Sergio Samitier | Cofidis | 2:11:44 |
| 56 | Nicola Conci | XDS Astana Team | 2:12:25 |
| 57 | Chris Hamilton | Team Picnic PostNL | 2:13:53 |
| 58 | Hugo Houle | Israel-Premier Tech | 2:16:42 |
| 59 | Jonathan Castroviejo | INEOS Grenadiers | 2:17:15 |
| 60 | Simone Petilli | Intermarché-Wanty | 2:18:57 |
| 61 | Giovanni Aleotti | Red Bull-BORA-hansgrohe | 2:22:59 |
| 62 | Lorenzo Germani | Groupama-FDJ | 2:25:49 |
| 63 | Jonathan Lastra | Cofidis | 2:28:44 |
| 64 | Carlos Verona | Lidl-Trek | 2:29:05 |
| 65 | Stefano Oldani | Cofidis | 2:32:16 |
| 66 | David Gaudu | Groupama-FDJ | 2:33:40 |
| 67 | Mattia Bais | Team Polti-VisitMalta | 2:35:40 |
| 68 | Luca Covili | VF Group-Bardiani CSF-Faizanè | 2:41:59 |
| 69 | Patrick Konrad | Lidl-Trek | 2:46:00 |
| 70 | Lawrence Warbasse | Tudor Pro Cycling Team | 2:46:01 |
| 71 | Georg Steinhauser | EF Education-EasyPost | 2:47:21 |
| 72 | Quentin Pacher | Groupama-FDJ | 2:47:41 |
| 73 | Davide De Pretto | Team Jayco-AlUla | 2:53:27 |
| 74 | James Shaw | EF Education-EasyPost | 2:57:07 |
| 75 | Milan Vader | Q36.5 Pro Cycling Team | 2:57:47 |
| 76 | Jakob Fuglsang | Israel-Premier Tech | 2:59:53 |
| 77 | Filippo Baroncini | UAE Team Emirates-XRG | 3:01:50 |
| 78 | Felix Engelhardt | Team Jayco-AlUla | s.t. |
| 79 | Mikkel Honore | EF Education-EasyPost | 3:04:57 |
| 80 | Jan Tratnik | Red Bull-BORA-hansgrohe | 3:05:50 |
| 81 | Dorian Godon | Decathlon AG2R La Mondiale | 3:08:38 |
| 82 | Sylvain Moniquet | Cofidis | 3:09:29 |
| 83 | Wout van Aert | Team Visma | Lease a Bike | 3:11:39 |
| 84 | Darren Rafferty | EF Education-EasyPost | 3:16:24 |
| 85 | Martin Marcellusi | VF Group-Bardiani CSF-Faizanè | 3:16:52 |
| 86 | Simon Guglielmi | Arkea-B&B Hotels | 3:21:07 |
| 87 | Quinten Hermans | Alpecin-Deceuninck | 3:22:36 |
| 88 | Filippo Fiorelli | VF Group-Bardiani CSF-Faizanè | 3:22:45 |
| 89 | Lorenzo Milesi | Movistar Team | 3:26:40 |
| 90 | Mads Pedersen | Lidl-Trek | 3:30:12 |
| 91 | Dylan van Baarle | Team Visma | Lease a Bike | 3:30:58 |
| 92 | Corbin Strong | Israel-Premier Tech | 3:31:59 |
| 93 | Jon Barrenetxea | Movistar Team | 3:33:35 |
| 94 | Fabio Van den Bossche | Alpecin-Deceuninck | 3:36:35 |
| 95 | Manuele Tarozzi | VF Group-Bardiani CSF-Faizanè | 3:36:45 |
| 96 | Timo Kielich | Alpecin-Deceuninck | 3:38:33 |
| 97 | Davide Bais | Team Polti-VisitMalta | 3:39:53 |
| 98 | Paul Double | Team Jayco-AlUla | 3:41:03 |
| 99 | Edward Planckaert | Alpecin-Deceuninck | 3:45:48 |
| 100 | Mirco Maestri | Team Polti-VisitMalta | 3:46:21 |
| 101 | Orluis Aular | Movistar Team | 3:46:53 |
| 102 | Francesco Busatto | Intermarché-Wanty | 3:47:13 |
| 103 | Lucas Hamilton | INEOS Grenadiers | 3:49:01 |
| 104 | Rick Pluimers | Tudor Pro Cycling Team | 3:54:24 |
| 105 | Kaden Groves | Alpecin-Deceuninck | 3:54:44 |
| 106 | Laurens Huys | Arkea-B&B Hotels | 3:56:12 |
| 107 | Nick Schultz | Israel-Premier Tech | 3:59:11 |
| 108 | Owain Doull | EF Education-EasyPost | 4:01:35 |
| 109 | Stan Dewulf | Decathlon AG2R La Mondiale | 4:05:06 |
| 110 | Kasper Asgreen | EF Education-EasyPost | 4:08:32 |
| 111 | Filippo Magli | VF Group-Bardiani CSF-Faizanè | 4:09:38 |
| 112 | Kevin Colleoni | Intermarché-Wanty | 4:14:51 |
| 113 | Daan Hoole | Lidl-Trek | 4:18:25 |
| 114 | Enzo Paleni | Groupama-FDJ | 4:19:39 |
| 115 | Fran Miholjevic | Bahrain Victorious | 4:22:18 |
| 116 | Alessandro Verre | Arkea-B&B Hotels | 4:23:09 |
| 117 | Gianni Moscon | Red Bull-BORA-hansgrohe | 4:25:18 |
| 118 | Nico Denz | Red Bull-BORA-hansgrohe | 4:25:34 |
| 119 | Simon Clarke | Israel-Premier Tech | 4:26:14 |
| 120 | Ben Turner | INEOS Grenadiers | 4:26:46 |
| 121 | Max Kanter | XDS Astana Team | 4:27:32 |
| 122 | Kim Heiduk | INEOS Grenadiers | 4:28:06 |
| 123 | Anthony Perez | Cofidis | 4:29:31 |
| 124 | Albert Torres | Movistar Team | 4:30:42 |
| 125 | Xabier Azparren | Q36.5 Pro Cycling Team | 4:31:50 |
| 126 | Dries De Bondt | Decathlon AG2R La Mondiale | 4:38:05 |
| 127 | Jacopo Mosca | Lidl-Trek | 4:39:31 |
| 128 | Jimmy Janssens | Alpecin-Deceuninck | 4:40:04 |
| 129 | Giovanni Lonardi | Team Polti-VisitMalta | 4:42:09 |
| 130 | Sven Erik Bystrøm | Groupama-FDJ | 4:45:19 |
| 131 | Emils Liepins | Q36.5 Pro Cycling Team | 4:46:51 |
| 132 | Josef Cerný | Soudal Quick-Step | 4:49:18 |
| 133 | Tord Gudmestad | Decathlon AG2R La Mondiale | 4:51:15 |
| 134 | Edoardo Affini | Team Visma | Lease a Bike | 4:51:23 |
| 135 | Andrea Pietrobon | Team Polti-VisitMalta | 4:52:43 |
| 136 | Giosue Epis | Arkea-B&B Hotels | 4:53:06 |
| 137 | Luca Mozzato | Arkea-B&B Hotels | 4:55:32 |
| 138 | Clément Davy | Groupama-FDJ | 4:57:02 |
| 139 | Nicolas Debeaumarché | Cofidis | 4:58:22 |
| 140 | Matevz Govekar | Bahrain Victorious | 5:00:30 |
| 141 | Alex Edmondson | Team Picnic PostNL | 5:00:36 |
| 142 | Luke Lamperti | Soudal Quick-Step | 5:00:51 |
| 143 | Ethan Hayter | Soudal Quick-Step | 5:01:12 |
| 144 | Michael Hepburn | Team Jayco-AlUla | 5:01:34 |
| 145 | Anton Kuzmin | XDS Astana Team | 5:02:28 |
| 146 | Sam Bennett | Decathlon AG2R La Mondiale | 5:02:40 |
| 147 | Francisco Muñoz | Team Polti-VisitMalta | 5:03:25 |
| 148 | Olav Kooij | Team Visma | Lease a Bike | 5:04:06 |
| 149 | Jan Maas | Cofidis | 5:04:16 |
| 150 | Casper van Uden | Team Picnic PostNL | 5:06:53 |
| 151 | Enrico Zanoncello | VF Group-Bardiani CSF-Faizanè | 5:13:39 |
| 152 | Matteo Moschetti | Q36.5 Pro Cycling Team | 5:13:58 |
| 153 | Taco van der Hoorn | Intermarché-Wanty | 5:14:48 |
| 154 | Maikel Zijlaard | Tudor Pro Cycling Team | 5:15:17 |
| 155 | Gijs Van Hoecke | Intermarché-Wanty | 5:17:27 |
| 156 | Niklas Märkl | Team Picnic PostNL | 5:24:19 |
| 157 | Jensen Plowright | Alpecin-Deceuninck | 5:26:02 |
| 158 | Gerben Thijssen | Intermarché-Wanty | 5:26:37 |
| 159 | Alexander Krieger | Tudor Pro Cycling Team | 5:42:23 |
Stage 19 map & profile:

Stage 19 map

Stage 19 profile
Stage 19 photos by Fotoreporter Sirotti:

Wout van Aert on the Col Tzecore, the first big climb

Nicolas Prodhomme wins the stage.

The best day of Nicolas Prodhomme's racing career.

Isaac del Toro and Richard Carapaz finish second and third.

Fourth-place Damiano Caruso leads a group in.

Egan Bernal was sixth across the line.

Antonio Tiberi was ninth.

A scuffed-up Giulio Pellizzari finished twelfth.

Stage winner Nicolas Prodhomme just after the stage.

Isaac del Toro just after the stage.

Stage winner Nicolas Prodhomme

Isaac del Toro has one more tough stage to go.