
Giro d'Italia results for every stage of every edition | 2025 Giro | Upcoming stages | Start list, teams presentation photos, organizer's route summary
Stage 1 | Stage 2 | Stage 3 | Rest Day 1 | Stage 4 | Stage 5 | Stage 6 | Stage 7 | Stage 8 | Stage 9 | Rest Day 2 | Stage 10 | Stage 11 | Stage 12 | Stage 13 | Stage 14 | Stage 15 | Rest Day 3 | Stage 16 | Stage 17 | Stage 18 | Stage 19 | Stage 20

Map of the 2026 Giro d'Italia, December 1, 2025
Saturday, May 30: Stage 20, Gemona del Friuli 1976 - 2026 - Piancavallo, 200 km
Stage 20 map & profile | Stage 20 photos

Jonas Vingegaard has left his nearest chaser more than a minute behind to win the stage. RCS photo
Les Woodland's book Sticky Buns Across America: Back-roads biking from sea to shining sea is available in print, Kindle eBook & audiobook versions. To get your copy, just click on the Amazon link on the right.
Weather at the finish city of Piancavallo at 2:35 PM, local time: 21C (69F), partly cloudy, with the wind from the south at 11 km/hr (7 mph). There is a 12% chance of rain.
The stage: The stage opens with a rolling section across the Tagliamento plain around Gemona. Notable features include the short climb of Forgaria nel Friuli and the KOM at Clauzetto, which leads into the Val Cosa. From there, the race reaches Maniago and then enters, at Montereale Valcellina, a final circuit of approximately 53 km featuring a double ascent of Piancavallo. In the first part, the roads are quite winding but always wide and well surfaced. After the first ascent, riders descend towards Lake Barcis on a fairly demanding descent, followed by a tunnel of over 4 km in slight descent, fully lit and with excellent road surface. The route then becomes flat until Aviano, where the final climb begins.
Final kilometers:
The final 15 km are entirely uphill. The first 10 km are very steep, consistently around 9% with peaks of 14%. At km 10.9 the road levels off and even descends slightly before climbing again (passing through an avalanche gallery) with more moderate gradients (max 8%). The final kilometer is quite technical and still slightly uphill. The finish is on a wide sweeping bend at 1.5% over 100 m, on 7.5 m wide asphalt.
The start city:
Nestled at the foot of the Julian Alps, Gemona del Friuli is one of the most historically significant towns in Friuli and has long served as a gateway between the plain and the Alpine passes. Its town centre preserves a highly valuable architectural heritage, dominated by the Cathedral of Santa Maria Assunta and a compact medieval urban layout. The city’s recent history is marked by the 1976 earthquake, which struck Gemona with devastating force and whose 50th anniversary will be commemorated in 2026.
The race: The offical start was given at 11:16 AM and attacks flew off from the flag drop.
Here's the race report from stage winner & GC leader Jonas Vingegaard's Team Vimsa | Lease a Bike:
Jonas Vingegaard put the finishing touches on his dominance in the penultimate stage of the Giro d’Italia. The 29-year-old Dane once again asserted his authority in the mountains in impressive fashion, claiming his fifth stage victory. Vingegaard and Team Visma | Lease a Bike now stand on the brink of a historic overall victory in the Giro.
“I had a fantastic day,” Vingegaard said afterward. “It’s special to have five stage wins in this Giro. The goal was to win at least one stage while wearing the pink jersey, but this is even better than I could have imagined. Today, I was also wearing a pink jersey featuring a tribute to the victims of the 1976 earthquake in this region. That makes this victory even more special.”
The final mountain stage of the Giro started in Gemona del Friuli. The riders faced a 200-kilometer route, featuring a double ascent of Piancavallo in the finale. From the very beginning, the riders of Team Visma | Lease a Bike took control of the peloton and set out in pursuit of the early breakaway riders.

The peloton 24 kilometers into the stage. RCS photo
The race truly came to life on the final climb. With 10 kilometers remaining, Vingegaard launched his attack. The overall leader quickly dropped all of his rivals. Not long afterward, Vingegaard also passed the last remaining breakaway riders. The Dane then soloed to his fifth stage victory of this Giro d’Italia. For Team Visma | Lease a Bike, it was already their sixth stage win, just one day after Sepp Kuss’s victory.

Jonas Vingegaard and his Visma | Lease a Bike team lead the peloton up the Piancavallo's first ascent with three riders 1min 25sec up the road.
“The guys did an incredible job today. I had to make my move early on the climb. I attacked sooner than planned, but fortunately I had the legs to finish it off. The team has given everything over the past three weeks, so this victory is absolutely for them. Tomorrow, we’ll enjoy our celebratory day in Rome.”

Bam! On the second & final ascent of the Piancavallo climb Jonas Vingegaard drops Felix Gall and heads for the finish.
On Sunday, the Italian capital Rome will host the final stage of the 109th Giro. Barring any mishaps, Vingegaard will secure the first overall Giro victory of his career. In doing so, the Dane will complete his Grand Tour trilogy. He has already won the 2022 & 2023 Tours de France and the 2025 Vuelta a España.

Stage 20 and the 2026 Giro d'Italia are Jonas Vingegaard's.
Complete results:
200 kilometers raced at an average speed of 39.485 km/hr
| 1 | Jonas Vingegaard | Team Visma | Lease a Bike | 5hr 3min 55sec |
| 2 | Felix Gall | Decathlon CMA CGM Team | @ 1min 15sec |
| 3 | Jai Hindley | Red Bull-BORA-hansgrohe | s.t. |
| 4 | Derek Gee-West | Lidl-Trek | s.t. |
| 5 | Thymen Arensman | Netcompany INEOS Cycling Team | 1:19 |
| 6 | Egan Bernal | Netcompany INEOS Cycling Team | 1:25 |
| 7 | Afonso Eulalio | Bahrain Victorious | 2:03 |
| 8 | Damiano Caruso | Bahrain Victorious | 2:13 |
| 9 | Michael Storer | Tudor Pro Cycling Team | s.t. |
| 10 | Davide Piganzoli | Team Visma | Lease a Bike | s.t. |
| 11 | Wout Poels | Unibet Rose Rockets | 3:21 |
| 12 | Ludovico Crescioli | Team Polti-VisitMalta | s.t. |
| 13 | Jan Hirt | NSN Cycling Team | s.t. |
| 14 | Mathys Rondel | Tudor Pro Cycling Team | s.t. |
| 15 | Gregor Mühlberger | Decathlon CMA CGM Team | s.t. |
| 16 | Einer Rubio | Movistar Team | 4:00 |
| 17 | Florian Stork | Tudor Pro Cycling Team | 4:43 |
| 18 | David de la Cruz | Pinarello-Q36.5 Pro Cycling Team | 4:44 |
| 19 | Andreas Leknessund | Uno-X Mobility | s.t. |
| 20 | Sepp Kuss | Team Visma | Lease a Bike | s.t. |
| 21 | Ben O'Connor | Team Jayco-AlUla | 5:45 |
| 22 | Koen Bouwman | Team Jayco-AlUla | 6:33 |
| 23 | Johannes Kulset | Uno-X Mobility | 6:58 |
| 24 | Gianmarco Garofoli | Soudal Quick-Step | s.t. |
| 25 | William Barta | Tudor Pro Cycling Team | s.t. |
| 26 | Igor Arrieta | UAE Team Emirates-XRG | 8:06 |
| 27 | Alessandro Pinarello | NSN Cycling Team | 9:08 |
| 28 | Bart Lemmen | Team Visma | Lease a Bike | s.t. |
| 29 | Lawrence Warbasse | Tudor Pro Cycling Team | s.t. |
| 30 | Axel Huens | Groupama-FDJ United | 9:32 |
| 31 | Simone Gualdi | Lotto-Intermarché | 9:36 |
| 32 | Embret Svestad-Bårdseng | Netcompany INEOS Cycling Team | 11:22 |
| 33 | Jack Haig | Netcompany INEOS Cycling Team | s.t. |
| 34 | Giulio Ciccone | Lidl-Trek | 12:24 |
| 35 | Mark Donovan | Pinarello-Q36.5 Pro Cycling Team | 13:55 |
| 36 | Chris Harper | Pinarello-Q36.5 Pro Cycling Team | s.t. |
| 37 | Rémy Rochas | Groupama-FDJ United | s.t. |
| 38 | Andrea Raccagni Noviero | Soudal Quick-Step | s.t. |
| 39 | Johannes Staune-Mittet | Decathlon CMA CGM Team | s.t. |
| 40 | Callum Scotson | Decathlon CMA CGM Team | 14:01 |
| 41 | Giulio Pellizzari | Red Bull-BORA-hansgrohe | 18:02 |
| 42 | Giovanni Aleotti | Red Bull-BORA-hansgrohe | s.t. |
| 43 | Ben Zwiehoff | Red Bull-BORA-hansgrohe | s.t. |
| 44 | Jardi Van Der Lee | EF Education-EasyPost | 19:05 |
| 45 | Lorenzo Milesi | Movistar Team | 19:35 |
| 46 | Edoardo Zambanini | Bahrain Victorious | s.t. |
| 47 | Lorenzo Rota | Lotto-Intermarché | s.t. |
| 48 | Andrea Mifsud | Team Polti-VisitMalta | 20:09 |
| 49 | Oliver Naesen | Decathlon CMA CGM Team | s.t. |
| 50 | Magnus Sheffield | Netcompany INEOS Cycling Team | 20:15 |
| 51 | Thomas Silva | XDS Astana Team | 20:16 |
| 52 | Jonas Geens | Alpecin-Premier Tech | 21:02 |
| 53 | Victor Campenaerts | Team Visma | Lease a Bike | s.t. |
| 54 | Christopher Juul-Jensen | Team Jayco-AlUla | 21:04 |
| 55 | Manuele Tarozzi | Bardiani-CSF 7 Saber | s.t. |
| 56 | Alessandro Tonelli | Team Polti-VisitMalta | 21:17 |
| 57 | Thomas Pesenti | Team Polti-VisitMalta | s.t. |
| 58 | Markus Hoelgaard | Uno-X Mobility | s.t. |
| 59 | Toon Aerts | Lotto-Intermarché | 22:13 |
| 60 | Alan Hatherly | Team Jayco-AlUla | 24:18 |
| 61 | Chris Hamilton | Team Picnic PostNL | 25:01 |
| 62 | Nick Schultz | NSN Cycling Team | s.t. |
| 63 | Aleksandr Vlasov | Red Bull-BORA-hansgrohe | 25:05 |
| 64 | David González | Pinarello-Q36.5 Pro Cycling Team | 28:10 |
| 65 | Warren Barguil | Team Picnic PostNL | 28:26 |
| 66 | Brieuc Rolland | Groupama-FDJ United | s.t. |
| 67 | Alec Segaert | Bahrain Victorious | 28:31 |
| 68 | Arjen Livyns | XDS Astana Team | s.t. |
| 69 | Jonas Rutsch | Lotto-Intermarché | s.t. |
| 70 | Fran Miholjevic | Bahrain Victorious | s.t. |
| 71 | Connor Swift | Netcompany INEOS Cycling Team | s.t. |
| 72 | Enric Mas | Movistar Team | 28:35 |
| 73 | Juan Pedro Lopez | Movistar Team | s.t. |
| 74 | Matteo Sobrero | Lidl-Trek | s.t. |
| 75 | Rasmus Søjberg Pedersen | Decathlon CMA CGM Team | 33:52 |
| 76 | Jasper Stuyven | Soudal Quick-Step | s.t. |
| 77 | Filippo Zana | Soudal Quick-Step | s.t. |
| 78 | Ben Turner | Netcompany INEOS Cycling Team | s.t. |
| 79 | Cyril Barthe | Groupama-FDJ United | s.t. |
| 80 | Tobias Bayer | Alpecin-Premier Tech | s.t. |
| 81 | Mirco Maestri | Team Polti-VisitMalta | s.t. |
| 82 | Luca Paletti | Bardiani-CSF 7 Saber | s.t. |
| 83 | Mattia Bais | Team Polti-VisitMalta | s.t. |
| 84 | Nikita Tsvetkov | Bardiani-CSF 7 Saber | s.t. |
| 85 | Dion Smith | NSN Cycling Team | s.t. |
| 86 | Alexander Cepeda | EF Education-EasyPost | s.t. |
| 87 | Tim Rex | Team Visma | Lease a Bike | s.t. |
| 88 | Mick van Dijke | Red Bull-BORA-hansgrohe | s.t. |
| 89 | Madis Mihkels | EF Education-EasyPost | s.t. |
| 90 | Nelson Oliveira | Movistar Team | s.t. |
| 91 | Diego Ulissi | XDS Astana Team | s.t. |
| 92 | Alberto Bettiol | XDS Astana Team | s.t. |
| 93 | Martin López | XDS Astana Team | s.t. |
| 94 | Darren Rafferty | EF Education-EasyPost | s.t. |
| 95 | Markel Beloki | EF Education-EasyPost | s.t. |
| 96 | Mathijs Paasschens | Bahrain Victorious | s.t. |
| 97 | Josh Kench | Groupama-FDJ United | s.t. |
| 98 | Johan Jacobs | Groupama-FDJ United | s.t. |
| 99 | Corbin Strong | NSN Cycling Team | s.t. |
| 100 | Remi Cavagna | Groupama-FDJ United | s.t. |
| 101 | Robert Stannard | Bahrain Victorious | s.t. |
| 102 | Diego Sevilla | Team Polti-VisitMalta | s.t. |
| 103 | Nico Denz | Red Bull-BORA-hansgrohe | s.t. |
| 104 | Gianni Moscon | Red Bull-BORA-hansgrohe | s.t. |
| 105 | Iván García Cortina | Movistar Team | s.t. |
| 106 | Orluis Aular | Movistar Team | s.t. |
| 107 | Amanuel Ghebreigzabhier | Lidl-Trek | s.t. |
| 108 | Francesco Busatto | Alpecin-Premier Tech | s.t. |
| 109 | Robert Donaldson | Team Jayco-AlUla | 34:01 |
| 110 | Giovanni Lonardi | Team Polti-VisitMalta | 34:04 |
| 111 | Ryan Mullen | NSN Cycling Team | 35:17 |
| 112 | Filippo Turconi | Bardiani-CSF 7 Saber | 35:28 |
| 113 | Fredrik Dversnes | Uno-X Mobility | 36:52 |
| 114 | Luca Mozzato | Tudor Pro Cycling Team | 37:04 |
| 115 | Vicente Rojas | Bardiani-CSF 7 Saber | 40:10 |
| 116 | Paul Magnier | Soudal Quick-Step | 40:27 |
| 117 | Dries van Gestel | Soudal Quick-Step | s.t. |
| 118 | Ayco Bastiaens | Soudal Quick-Step | s.t. |
| 119 | Fabio Van den Bossche | Soudal Quick-Step | s.t. |
| 120 | Tord Gudmestad | Decathlon CMA CGM Team | s.t. |
| 121 | Filippo Magli | Bardiani-CSF 7 Saber | 40:32 |
| 122 | Luca Vergallito | Alpecin-Premier Tech | 41:06 |
| 123 | Timo Kielich | Team Visma | Lease a Bike | s.t. |
| 124 | Sean Flynn | Team Picnic PostNL | 41:12 |
| 125 | Gijs Leemreize | Team Picnic PostNL | s.t. |
| 126 | António Morgado | UAE Team Emirates-XRG | 41:17 |
| 127 | Jonathan Milan | Lidl-Trek | 41:25 |
| 128 | Mikkel Bjerg | UAE Team Emirates-XRG | 42:32 |
| 129 | Max Walscheid | Lidl-Trek | 42:49 |
| 130 | Elmar Reinders | Unibet Rose Rockets | s.t. |
| 131 | Tobias Lund Andresen | Decathlon CMA CGM Team | s.t. |
| 132 | Johan Price-Pejtersen | Alpecin-Premier Tech | s.t. |
| 133 | Fabian Lienhard | Tudor Pro Cycling Team | s.t. |
| 134 | Jan Christen | UAE Team Emirates-XRG | s.t. |
| 135 | Jensen Plowright | Alpecin-Premier Tech | s.t. |
| 136 | Paul Penhoët | Groupama-FDJ United | s.t. |
| 137 | Robin Froidevaux | Tudor Pro Cycling Team | s.t. |
| 138 | Sakarias Koller Løland | Uno-X Mobility | s.t. |
| 139 | Lukas Kubis | Unibet Rose Rockets | s.t. |
| 140 | Dylan Groenewegen | Unibet Rose Rockets | s.t. |
| 141 | Martin Marcellusi | Bardiani-CSF 7 Saber | s.t. |
| 142 | Tomas Kopecky | Unibet Rose Rockets | s.t. |
| 143 | Niklas Larsen | Unibet Rose Rockets | s.t. |
| 144 | Matteo Malucelli | XDS Astana Team | s.t. |
| 145 | Hartthijs de Vries | Unibet Rose Rockets | s.t. |
| 146 | Simone Consonni | Lidl-Trek | s.t. |
| 147 | Filippo Ganna | Netcompany INEOS Cycling Team | s.t. |
| 148 | Frank van den Broek | Team Picnic PostNL | s.t. |
| 149 | Tim Naberman | Team Picnic PostNL | s.t. |
| 150 | Casper van Uden | Team Picnic PostNL | s.t. |
| 151 | Tim Torn Teutenberg | Lidl-Trek | s.t. |
| 152 | Matyas Kopecky | Unibet Rose Rockets | s.t. |
GC after stage 20:
3,334.9 kilometers raced so far at an average speed of 41.539 km/hr
| 1 | Jonas Vingegaard | Team Visma | Lease a Bike | 80hr 17min 1sec |
| 2 | Felix Gall | Decathlon CMA CGM Team | @ 5min 22sec |
| 3 | Jai Hindley | Red Bull-BORA-hansgrohe | 6:25 |
| 4 | Thymen Arensman | Netcompany INEOS Cycling Team | 7:02 |
| 5 | Derek Gee-West | Lidl-Trek | 7:56 |
| 6 | Afonso Eulalio | Bahrain Victorious | 9:39 |
| 7 | Michael Storer | Tudor Pro Cycling Team | 10:13 |
| 8 | Davide Piganzoli | Team Visma | Lease a Bike | 10:52 |
| 9 | Damiano Caruso | Bahrain Victorious | 11:24 |
| 10 | Egan Bernal | Netcompany INEOS Cycling Team | 12:54 |
| 11 | Mathys Rondel | Tudor Pro Cycling Team | 15:12 |
| 12 | Jan Hirt | NSN Cycling Team | 22:06 |
| 13 | Sepp Kuss | Team Visma | Lease a Bike | 22:12 |
| 14 | David de la Cruz | Pinarello-Q36.5 Pro Cycling Team | 23:14 |
| 15 | Gregor Mühlberger | Decathlon CMA CGM Team | 23:53 |
| 16 | Ben O'Connor | Team Jayco-AlUla | 24:12 |
| 17 | Chris Harper | Pinarello-Q36.5 Pro Cycling Team | 30:43 |
| 18 | Johannes Kulset | Uno-X Mobility | 34:26 |
| 19 | Igor Arrieta | UAE Team Emirates-XRG | 55:56 |
| 20 | Giulio Ciccone | Lidl-Trek | 56:40 |
| 21 | Giulio Pellizzari | Red Bull-BORA-hansgrohe | 56:53 |
| 22 | Wout Poels | Unibet Rose Rockets | 1:02:10 |
| 23 | Einer Rubio | Movistar Team | 1:04:26 |
| 24 | Embret Svestad-Bårdseng | Netcompany INEOS Cycling Team | 1:13:39 |
| 25 | Aleksandr Vlasov | Red Bull-BORA-hansgrohe | 1:15:21 |
| 26 | Koen Bouwman | Team Jayco-AlUla | 1:21:21 |
| 27 | Ludovico Crescioli | Team Polti-VisitMalta | 1:22:57 |
| 28 | Giovanni Aleotti | Red Bull-BORA-hansgrohe | 1:27:04 |
| 29 | Gianmarco Garofoli | Soudal Quick-Step | 1:39:03 |
| 30 | Bart Lemmen | Team Visma | Lease a Bike | 1:43:35 |
| 31 | Ben Zwiehoff | Red Bull-BORA-hansgrohe | 1:46:13 |
| 32 | Callum Scotson | Decathlon CMA CGM Team | 1:47:21 |
| 33 | Enric Mas | Movistar Team | 1:48:28 |
| 34 | Johannes Staune-Mittet | Decathlon CMA CGM Team | 1:54:21 |
| 35 | Markel Beloki | EF Education-EasyPost | 1:55:28 |
| 36 | William Barta | Tudor Pro Cycling Team | 1:59:28 |
| 37 | Andreas Leknessund | Uno-X Mobility | 2:00:30 |
| 38 | Mark Donovan | Pinarello-Q36.5 Pro Cycling Team | 2:03:23 |
| 39 | Juan Pedro Lopez | Movistar Team | 2:05:07 |
| 40 | Florian Stork | Tudor Pro Cycling Team | 2:05:31 |
| 41 | Jack Haig | Netcompany INEOS Cycling Team | 2:05:45 |
| 42 | Magnus Sheffield | Netcompany INEOS Cycling Team | 2:13:46 |
| 43 | Victor Campenaerts | Team Visma | Lease a Bike | 2:22:36 |
| 44 | Simone Gualdi | Lotto-Intermarché | 2:23:20 |
| 45 | Diego Ulissi | XDS Astana Team | 2:29:04 |
| 46 | Edoardo Zambanini | Bahrain Victorious | 2:30:59 |
| 47 | Alan Hatherly | Team Jayco-AlUla | 2:34:41 |
| 48 | Alessandro Tonelli | Team Polti-VisitMalta | 2:35:14 |
| 49 | Lorenzo Milesi | Movistar Team | 2:37:10 |
| 50 | Martin López | XDS Astana Team | 2:38:11 |
| 51 | Lawrence Warbasse | Tudor Pro Cycling Team | 2:40:46 |
| 52 | Josh Kench | Groupama-FDJ United | 2:42:43 |
| 53 | Rémy Rochas | Groupama-FDJ United | 2:48:32 |
| 54 | Matteo Sobrero | Lidl-Trek | 3:03:39 |
| 55 | Andrea Raccagni Noviero | Soudal Quick-Step | 3:04:39 |
| 56 | Brieuc Rolland | Groupama-FDJ United | 3:05:22 |
| 57 | Warren Barguil | Team Picnic PostNL | 3:09:23 |
| 58 | Toon Aerts | Lotto-Intermarché | 3:17:13 |
| 59 | Filippo Zana | Soudal Quick-Step | 3:25:21 |
| 60 | Jan Christen | UAE Team Emirates-XRG | 3:26:08 |
| 61 | Alessandro Pinarello | NSN Cycling Team | 3:26:51 |
| 62 | Nick Schultz | NSN Cycling Team | 3:29:39 |
| 63 | Alberto Bettiol | XDS Astana Team | 3:34:04 |
| 64 | Alexander Cepeda | EF Education-EasyPost | 3:34:37 |
| 65 | Thomas Silva | XDS Astana Team | 3:35:10 |
| 66 | Nelson Oliveira | Movistar Team | 3:38:31 |
| 67 | Markus Hoelgaard | Uno-X Mobility | 3:42:04 |
| 68 | Lorenzo Rota | Lotto-Intermarché | 3:43:54 |
| 69 | Andrea Mifsud | Team Polti-VisitMalta | 3:44:47 |
| 70 | Thomas Pesenti | Team Polti-VisitMalta | 3:45:19 |
| 71 | Jasper Stuyven | Soudal Quick-Step | 3:46:19 |
| 72 | Alec Segaert | Bahrain Victorious | 3:48:39 |
| 73 | Jardi Van Der Lee | EF Education-EasyPost | 3:49:25 |
| 74 | Gianni Moscon | Red Bull-BORA-hansgrohe | 3:54:30 |
| 75 | Mick van Dijke | Red Bull-BORA-hansgrohe | 3:55:29 |
| 76 | Ben Turner | Netcompany INEOS Cycling Team | 3:56:03 |
| 77 | Connor Swift | Netcompany INEOS Cycling Team | 3:57:12 |
| 78 | Oliver Naesen | Decathlon CMA CGM Team | 3:58:55 |
| 79 | Orluis Aular | Movistar Team | 3:59:55 |
| 80 | Tobias Bayer | Alpecin-Premier Tech | 4:00:21 |
| 81 | Francesco Busatto | Alpecin-Premier Tech | 4:01:30 |
| 82 | Manuele Tarozzi | Bardiani-CSF 7 Saber | 4:02:50 |
| 83 | Axel Huens | Groupama-FDJ United | 4:02:51 |
| 84 | Chris Hamilton | Team Picnic PostNL | 4:03:35 |
| 85 | Mattia Bais | Team Polti-VisitMalta | 4:06:55 |
| 86 | Christopher Juul-Jensen | Team Jayco-AlUla | 4:07:21 |
| 87 | Luca Vergallito | Alpecin-Premier Tech | 4:12:05 |
| 88 | Mathijs Paasschens | Bahrain Victorious | 4:12:28 |
| 89 | Amanuel Ghebreigzabhier | Lidl-Trek | 4:12:43 |
| 90 | Corbin Strong | NSN Cycling Team | 4:13:20 |
| 91 | Tim Rex | Team Visma | Lease a Bike | 4:15:41 |
| 92 | Johan Jacobs | Groupama-FDJ United | 4:16:45 |
| 93 | Darren Rafferty | EF Education-EasyPost | 4:18:31 |
| 94 | Diego Sevilla | Team Polti-VisitMalta | 4:23:28 |
| 95 | Gijs Leemreize | Team Picnic PostNL | 4:23:36 |
| 96 | Filippo Ganna | Netcompany INEOS Cycling Team | 4:23:36 |
| 97 | Filippo Turconi | Bardiani-CSF 7 Saber | 4:23:44 |
| 98 | Fran Miholjevic | Bahrain Victorious | 4:23:50 |
| 99 | Mirco Maestri | Team Polti-VisitMalta | 4:24:46 |
| 100 | David González | Pinarello-Q36.5 Pro Cycling Team | 4:27:13 |
| 101 | Luca Paletti | Bardiani-CSF 7 Saber | 4:27:50 |
| 102 | Mikkel Bjerg | UAE Team Emirates-XRG | 4:30:34 |
| 103 | Vicente Rojas | Bardiani-CSF 7 Saber | 4:30:37 |
| 104 | Robert Stannard | Bahrain Victorious | 4:31:17 |
| 105 | Fabio Van den Bossche | Soudal Quick-Step | 4:31:26 |
| 106 | Jonas Rutsch | Lotto-Intermarché | 4:32:30 |
| 107 | Jonas Geens | Alpecin-Premier Tech | 4:32:34 |
| 108 | Cyril Barthe | Groupama-FDJ United | 4:34:21 |
| 109 | Nikita Tsvetkov | Bardiani-CSF 7 Saber | 4:36:23 |
| 110 | Remi Cavagna | Groupama-FDJ United | 4:37:19 |
| 111 | Fredrik Dversnes | Uno-X Mobility | 4:42:25 |
| 112 | Madis Mihkels | EF Education-EasyPost | 4:42:46 |
| 113 | Rasmus Søjberg Pedersen | Decathlon CMA CGM Team | 4:45:22 |
| 114 | Iván García Cortina | Movistar Team | 4:45:40 |
| 115 | Paul Magnier | Soudal Quick-Step | 4:52:33 |
| 116 | Filippo Magli | Bardiani-CSF 7 Saber | 4:53:41 |
| 117 | Sakarias Koller Løland | Uno-X Mobility | 5:00:06 |
| 118 | Robert Donaldson | Team Jayco-AlUla | 5:04:29 |
| 119 | Timo Kielich | Team Visma | Lease a Bike | 5:07:50 |
| 120 | Martin Marcellusi | Bardiani-CSF 7 Saber | 5:12:44 |
| 121 | Nico Denz | Red Bull-BORA-hansgrohe | 5:14:13 |
| 122 | Tobias Lund Andresen | Decathlon CMA CGM Team | 5:17:08 |
| 123 | Dion Smith | NSN Cycling Team | 5:23:40 |
| 124 | Jonathan Milan | Lidl-Trek | 5:25:44 |
| 125 | Niklas Larsen | Unibet Rose Rockets | 5:25:59 |
| 126 | António Morgado | UAE Team Emirates-XRG | 5:26:00 |
| 127 | Casper van Uden | Team Picnic PostNL | 5:26:24 |
| 128 | Ayco Bastiaens | Soudal Quick-Step | 5:26:42 |
| 129 | Paul Penhoët | Groupama-FDJ United | 5:29:36 |
| 130 | Jensen Plowright | Alpecin-Premier Tech | 5:30:57 |
| 131 | Tim Naberman | Team Picnic PostNL | 5:32:17 |
| 132 | Dries van Gestel | Soudal Quick-Step | 5:32:43 |
| 133 | Giovanni Lonardi | Team Polti-VisitMalta | 5:33:16 |
| 134 | Ryan Mullen | NSN Cycling Team | 5:34:35 |
| 135 | Arjen Livyns | XDS Astana Team | 5:35:05 |
| 136 | Tord Gudmestad | Decathlon CMA CGM Team | 5:37:26 |
| 137 | Tim Torn Teutenberg | Lidl-Trek | 5:37:53 |
| 138 | Lukas Kubis | Unibet Rose Rockets | 5:39:40 |
| 139 | Matyas Kopecky | Unibet Rose Rockets | 5:45:49 |
| 140 | Sean Flynn | Team Picnic PostNL | 5:45:52 |
| 141 | Johan Price-Pejtersen | Alpecin-Premier Tech | 5:47:55 |
| 142 | Max Walscheid | Lidl-Trek | 5:49:50 |
| 143 | Tomas Kopecky | Unibet Rose Rockets | 5:50:14 |
| 144 | Luca Mozzato | Tudor Pro Cycling Team | 5:53:17 |
| 145 | Hartthijs de Vries | Unibet Rose Rockets | 5:54:00 |
| 146 | Elmar Reinders | Unibet Rose Rockets | 5:54:57 |
| 147 | Fabian Lienhard | Tudor Pro Cycling Team | 5:55:15 |
| 148 | Robin Froidevaux | Tudor Pro Cycling Team | 5:56:27 |
| 149 | Dylan Groenewegen | Unibet Rose Rockets | 5:57:17 |
| 150 | Frank van den Broek | Team Picnic PostNL | 5:58:59 |
| 151 | Simone Consonni | Lidl-Trek | 6:01:49 |
| 152 | Matteo Malucelli | XDS Astana Team | 6:13:45 |
Stage 20 map & profile:

Stage 20 map

Stage 20 profile
Stage 20 photos by Fotoreporter Sirotti:

Jonas Vingegaard at the start. The sign is a reminder of the terrible 1976 earthquake that devastated the start town of Gemona del Friuli.

Rider presentation ceremony: Davide Piganzoli & Joans Vingegaard.

The peloton gets rolling in the start town of Gemona Del Friuli.

A group descends from Piancavallo.

The peloton descends the Piancavallo

Jonas Vingegaard wins stage twenty.

Felix Gall finishes second & Jai Hindley is third.

Derek Gee-West finishes fourth.

Best Young Rider Afonso Eulalio was sixth.

Egan Bernal was tenth across the line.

King of the Moutains Giulio Ciccone finishes

Just after the stage finish, Damiano Caruso & Afonso Eulalio.

Jopnas Vingegaard will stasrt the 21st & final stage in pink.
Friday, May 29: Stage 19, Feltre - Alleghe (Piani di Pizzè), 151 km
Complete stage 19 results, stage story, photos, map & profile

Sepp Kuss wins stage 19.
Results:
151 kilometers raced at an average speed of 33.737 km/hr
| 1 | Sepp Kuss | Team Visma | Lease a Bike | 4hr 28min 33sec |
| 2 | Derek Gee-West | Lidl-Trek | @ 13sec |
| 3 | Giulio Ciccone | Lidl-Trek | 0:36 |
| 4 | Felix Gall | Decathlon CMA CGM Team | 0:39 |
| 5 | Jonas Vingegaard | Team Visma | Lease a Bike | s.t. |
| 6 | Jai Hindley | Red Bull-BORA-hansgrohe | 0:43 |
| 7 | Damiano Caruso | Bahrain Victorious | 1:06 |
| 8 | Davide Piganzoli | Team Visma | Lease a Bike | 1:11 |
| 9 | Einer Rubio | Movistar Team | 1:19 |
| 10 | Michael Storer | Tudor Pro Cycling Team | 1:19 |
GC after stage 19:
3,134.9 kilometers raced so far at an average speed of 41.676 km/hr
| 1 | Jonas Vingegaard | Team Visma | Lease a Bike | 75hr 13min 16sec |
| 2 | Felix Gall | Decathlon CMA CGM Team | @ 4min 3sec |
| 3 | Jai Hindley | Red Bull-BORA-hansgrohe | 5:04 |
| 4 | Thymen Arensman | Netcompany INEOS Cycling Team | 5:33 |
| 5 | Derek Gee-West | Lidl-Trek | 6:31 |
| 6 | Afonso Eulalio | Bahrain Victorious | 7:26 |
| 7 | Michael Storer | Tudor Pro Cycling Team | 7:50 |
| 8 | Davide Piganzoli | Team Visma | Lease a Bike | 8:29 |
| 9 | Damiano Caruso | Bahrain Victorious | 9:01 |
| 10 | Egan Bernal | Netcompany INEOS Cycling Team | 11:19 |
Thursday, May 28: Stage 18, Fai della Paganella - Pieve di Soligo, 171 km
Complete stage 18 results, stage story, photos, map & profile

Super fast Paul Magnier wins his third stage this Giro.
Results:
171 kilometers raced at an average speed of 45.231 km/hr
| 1 | Paul Magnier | Soudal Quick-Step | 3hr 46min 50sec |
| 2 | Edoardo Zambanini | Bahrain Victorious | s.t. |
| 3 | Jonathan Milan | Lidl-Trek | s.t. |
| 4 | Francesco Busatto | Alpecin-Premier Tech | s.t. |
| 5 | Corbin Strong | NSN Cycling Team | s.t. |
| 6 | Thomas Silva | XDS Astana Team | s.t. |
| 7 | Madis Mihkels | EF Education-EasyPost | s.t. |
| 8 | Filippo Magli | Bardiani-CSF 7 Saber | s.t. |
| 9 | Sakarias Koller Løland | Uno-X Mobility | s.t. |
| 10 | Lukas Kubis | Unibet Rose Rockets | s.t. |
GC after stage 18:
2,983.9 kilometers raced so far at an average speed of 42.185 km/hr
| 1 | Jonas Vingegaard | Team Visma | Lease a Bike | 70hr 44min 4sec |
| 2 | Felix Gall | Decathlon CMA CGM Team | @ 4min 3sec |
| 3 | Thymen Arensman | Netcompany INEOS Cycling Team | 4:27 |
| 4 | Jai Hindley | Red Bull-BORA-hansgrohe | 5:00 |
| 5 | Afonso Eulalio | Bahrain Victorious | 5:40 |
| 6 | Derek Gee-West | Lidl-Trek | 7:09 |
| 7 | Michael Storer | Tudor Pro Cycling Team | 7:14 |
| 8 | Davide Piganzoli | Team Visma | Lease a Bike | 7:57 |
| 9 | Damiano Caruso | Bahrain Victorious | 8:34 |
| 10 | Ben O'Connor | Team Jayco-AlUla | 9:20 |
Wednesday, May 27: Stage 17, Cassana d'Adda - Andalo, 202 km
Complete stage 17 results, stage story, photos, map & profile

Michael Valgren wins stage 17.
Results:
202 kilometers raced at an average speed of 43.047 km/hr
| 1 | Michael Valgren | EF Education-EasyPost | 4hr 41min 33sec |
| 2 | Andreas Leknessund | Uno-X Mobility | @ 3sec |
| 3 | Damiano Caruso | Bahrain Victorious | 0:06 |
| 4 | Aleksandr Vlasov | Red Bull-BORA-hansgrohe | s.t. |
| 5 | Einer Rubio | Movistar Team | s.t. |
| 6 | Igor Arrieta | UAE Team Emirates-XRG | 0:14 |
| 7 | Gianmarco Garofoli | Soudal Quick-Step | 0:52 |
| 8 | David de la Cruz | Pinarello-Q36.5 Pro Cycling Team | 1:08 |
| 9 | Jhonatan Narvaez | UAE Team Emirates-XRG | 1:44 |
| 10 | Mark Donovan | Pinarello-Q36.5 Pro Cycling Team | s.t. |
GC after stage 17:
2,812.9 kilometers raced so far at an average speed of 42.013 km/hr
| 1 | Jonas Vingegaard | Team Visma | Lease a Bike | 66hr 57min 14sec |
| 2 | Felix Gall | Decathlon CMA CGM Team | @ 4min 3sec |
| 3 | Thymen Arensman | Netcompany INEOS Cycling Team | 4:27 |
| 4 | Jai Hindley | Red Bull-BORA-hansgrohe | 5:00 |
| 5 | Afonso Eulalio | Bahrain Victorious | 5:40 |
| 6 | Derek Gee-West | Lidl-Trek | 7:09 |
| 7 | Michael Storer | Tudor Pro Cycling Team | 7:14 |
| 8 | Davide Piganzoli | Team Visma | Lease a Bike | 7:57 |
| 9 | Damiano Caruso | Bahrain Victorious | 8:34 |
| 10 | Ben O'Connor | Team Jayco-AlUla | 9:20 |
Tuesday, May 26: Stage 16, Bellinzona - Cari, 113 km
Complete stage 16 results, stage story, photos, map & profile

Jonas Vingegaard wins stage 16 in pink. RCS photo
Results:
113 kilometers raced at an average speed of 38.161 km/hr
| 1 | Jonas Vingegaard | Team Visma | Lease a Bike | 2hr 57min 40sec |
| 2 | Felix Gall | Decathlon CMA CGM Team | @ 1min 9sec |
| 3 | Jai Hindley | Red Bull-BORA-hansgrohe | 1:11 |
| 4 | Thymen Arensman | Netcompany INEOS Cycling Team | 1:14 |
| 5 | Derek Gee-West | Lidl-Trek | 1:18 |
| 6 | Davide Piganzoli | Team Visma | Lease a Bike | 1:34 |
| 7 | Egan Bernal | Netcompany INEOS Cycling Team | 2:04 |
| 8 | Michael Storer | Tudor Pro Cycling Team | 2:18 |
| 9 | Mathys Rondel | Tudor Pro Cycling Team | 2:55 |
| 10 | Wout Poels | Unibet Rose Rockets | 3:04 |
GC after stage 16:
2,610.9 kilometers raced so far at an average speed of 41.994 km/hr
| 1 | Jonas Vingegaard | Team Visma | Lease a Bike | 62hr 10min 26sec |
| 2 | Felix Gall | Decathlon CMA CGM Team | @ 4min 3sec |
| 3 | Thymen Arensman | Netcompany INEOS Cycling Team | 4:27 |
| 4 | Jai Hindley | Red Bull-BORA-hansgrohe | 5:00 |
| 5 | Afonso Eulalio | Bahrain Victorious | 5:40 |
| 6 | Derek Gee-West | Lidl-Trek | 7:09 |
| 7 | Michael Storer | Tudor Pro Cycling Team | 7:14 |
| 8 | Davide Piganzoli | Team Visma | Lease a Bike | 7:57 |
| 9 | Ben O'Connor | Team Jayco-AlUla | 9:20 |
| 10 | Egan Bernal | Netcompany INEOS Cycling Team | 9:44 |
Monday, May 25: Rest Day 3
Sunday, May 24: Stage 15, Voghera - Milano, 157 km
Complete stage 15 results, stage story, photos, map & profile

Uno-X rider Fredrik Dversnes wins stage 15. RCS photo
Results:
157 kilometers raced at an average speed of 51.391 km/hr
| 1 | Fredrik Dversnes | Uno-X Mobility | 3hr 3min 18sec |
| 2 | Mirco Maestri | Team Polti-VisitMalta | s.t. |
| 3 | Martin Marcellusi | Bardiani-CSF 7 Saber | s.t. |
| 4 | Mattia Bais | Team Polti-VisitMalta | s.t. |
| 5 | Paul Magnier | Soudal Quick-Step | @ 57sec |
| 6 | Dylan Groenewegen | Unibet Rose Rockets | s.t. |
| 7 | Tobias Lund Andresen | Decathlon CMA CGM Team | s.t. |
| 8 | Ethan Vernon | NSN Cycling Team | s.t. |
| 9 | Paul Penhoët | Groupama-FDJ United | s.t. |
| 10 | Luca Mozzato | Tudor Pro Cycling Team | s.t. |
GC after stage 15:
2,497.9 kilometers raced so far at an average speed of 42.183 km/hr
| 1 | Jonas Vingegaard | Team Visma | Lease a Bike | 59hr 12min 56sec |
| 2 | Afonso Eulalio | Bahrain Victorious | @ 2min 26sec |
| 3 | Felix Gall | Decathlon CMA CGM Team | 2:50 |
| 4 | Thymen Arensman | Netcompany INEOS Cycling Team | 3:03 |
| 5 | Jai Hindley | Red Bull-BORA-hansgrohe | 3:43 |
| 6 | Giulio Pellizzari | Red Bull-BORA-hansgrohe | 4:22 |
| 7 | Michael Storer | Tudor Pro Cycling Team | 4:46 |
| 8 | Ben O'Connor | Team Jayco-AlUla | 5:22 |
| 9 | Derek Gee-West | Lidl-Trek | 5:41 |
| 10 | Davide Piganzoli | Team Visma | Lease a Bike | 6:13 |
Saturday, May 23: Stage 14, Aosta - Pila (Gressan), 133 km
Complete stage 14 results, stage story, photos, map & profile

Jonas Vingegaard has left his nearest chaser nearly a minute behind. He'll be wearing pink at the start of stage 15. Photo: LaPresse
Results:
133 kilometers raced at an average speed of 34.246 km/hr
| 1 | Jonas Vingegaard | Team Visma | Lease a Bike | 3hr 53min 1sec |
| 2 | Felix Gall | Decathlon CMA CGM Team | @ 49sec |
| 3 | Jai Hindley | Red Bull-BORA-hansgrohe | 0:58 |
| 4 | Davide Piganzoli | Team Visma | Lease a Bike | 1:03 |
| 5 | Giulio Pellizzari | Red Bull-BORA-hansgrohe | s.t. |
| 6 | Thymen Arensman | Netcompany INEOS Cycling Team | 1:23 |
| 7 | Michael Storer | Tudor Pro Cycling Team | 1:35 |
| 8 | Wout Poels | Unibet Rose Rockets | 2:08 |
| 9 | Jan Hirt | NSN Cycling Team | s.t. |
| 10 | Egan Bernal | Netcompany INEOS Cycling Team | s.t. |
GC after stage 14:
2,340.9 kilometers raced so far at an average speed of 41.694 km/hr
| 1 | Jonas Vingegaard | Team Visma | Lease a Bike | 56hr 8min 41sec |
| 2 | Afonso Eulalio | Bahrain Victorious | @ 2min 26sec |
| 3 | Felix Gall | Decathlon CMA CGM Team | 2:50 |
| 4 | Thymen Arensman | Netcompany INEOS Cycling Team | 3:03 |
| 5 | Jai Hindley | Red Bull-BORA-hansgrohe | 3:43 |
| 6 | Giulio Pellizzari | Red Bull-BORA-hansgrohe | 4:22 |
| 7 | Michael Storer | Tudor Pro Cycling Team | 4:46 |
| 8 | Ben O'Connor | Team Jayco-AlUla | 5:22 |
| 9 | Derek Gee-West | Lidl-Trek | 5:41 |
| 10 | Davide Piganzoli | Team Visma | Lease a Bike | 6:13 |
Friday, May 22: Stage 13, Alessandria - Verbania, 189 km
Complete stage 13 results, stage story, photos, map & profile

Alberto Bettiol solos across the line to win stage 13. Sirotti photo
Results:
189 kilometers raced at an average speed of 48.974 km/hr
| 1 | Alberto Bettiol | XDS Astana Team | 3hr 51min 33awx |
| 2 | Andreas Leknessund | Uno-X Mobility | @ 26sec |
| 3 | Jasper Stuyven | Soudal Quick-Step | 0:44 |
| 4 | Michael Valgren | EF Education-EasyPost | s.t. |
| 5 | Mark Donovan | Pinarello-Q36.5 Pro Cycling Team | s.t. |
| 6 | Josh Kench | Groupama-FDJ United | s.t. |
| 7 | Mikkel Bjerg | UAE Team Emirates-XRG | 1:33 |
| 8 | Francesco Busatto | Alpecin-Premier Tech | 1:35 |
| 9 | Markus Hoelgaard | Uno-X Mobility | s.t. |
| 10 | Diego Sevilla | Team Polti-VisitMalta | s.t. |
GC after stage 13:
2,207.9 kilometers raced so far at an average speed of 42.253 km/hr
| 1 | Afonso Eulalio | Bahrain Victorious | 52hr 15min 17sec |
| 2 | Jonas Vingegaard | Team Visma | Lease a Bike | @ 33sec |
| 3 | Thymen Arensman | Netcompany INEOS Cycling Team | 2:03 |
| 4 | Felix Gall | Decathlon CMA CGM Team | 2:30 |
| 5 | Ben O'Connor | Team Jayco-AlUla | 2:50 |
| 6 | Jai Hindley | Red Bull-BORA-hansgrohe | 3:12 |
| 7 | Michael Storer | Tudor Pro Cycling Team | 3:34 |
| 8 | Derek Gee-West | Lidl-Trek | 3:40 |
| 9 | Giulio Pellizzari | Red Bull-BORA-hansgrohe | 3:42 |
| 10 | Chris Harper | Pinarello-Q36.5 Pro Cycling Team | 4:15 |
Thursday, May 21: Stage 12, Imperia - Novi Ligure, 175 km
Complete stage 12 results, stage story, photos, map & profile

Alec Segaert wins stage 12. RCS photo
Results:
175 kilometers raced at an average speed of 45.064 km/hr
| 1 | Alec Segaert | Bahrain Victorious | 3hr 53min 0sec |
| 2 | Toon Aerts | Lotto-Intermarché | @ 3sec |
| 3 | Thomas Silva | XDS Astana Team | s.t. |
| 4 | Ethan Vernon | NSN Cycling Team | s.t. |
| 5 | Jasper Stuyven | Soudal Quick-Step | s.t. |
| 6 | Orluis Aular | Movistar Team | s.t. |
| 7 | Madis Mihkels | EF Education-EasyPost | s.t. |
| 8 | Jhonatan Narvaez | UAE Team Emirates-XRG | s.t. |
| 9 | Edoardo Zambanini | Bahrain Victorious | s.t. |
| 10 | Sakarias Koller Løland | Uno-X Mobility | s.t. |
GC after stage 12:
2,018.9 kilometers raced so far at an average speed of 41.906 km/hr
| 1 | Afonso Eulalio | Bahrain Victorious | 48hr 10min 38sec |
| 2 | Jonas Vingegaard | Team Visma | Lease a Bike | @ 33sec |
| 3 | Thymen Arensman | Netcompany INEOS Cycling Team | 2:03 |
| 4 | Felix Gall | Decathlon CMA CGM Team | 2:30 |
| 5 | Ben O'Connor | Team Jayco-AlUla | 2:50 |
| 6 | Jai Hindley | Red Bull-BORA-hansgrohe | 3:12 |
| 7 | Michael Storer | Tudor Pro Cycling Team | 3:34 |
| 8 | Derek Gee-West | Lidl-Trek | 3:40 |
| 9 | Giulio Pellizzari | Red Bull-BORA-hansgrohe | 3:42 |
| 10 | Chris Harper | Pinarello-Q36.5 Pro Cycling Team | 4:15 |
Wednesday, May 20: Stage 11, Porcari - Chiavari, 195 km
Complete stage 11 results, stage story, photos, map & profile

A close one. Jhonatan Narvaez (right) just beats Enric Mas for the stage win. Sirotti photo
Results:
195 kilometers raced at an average speed of 42.745 km/hr
| 1 | Jhonatan Narvaez | UAE Team Emirates-XRG | 4hr 33min 43sec |
| 2 | Enric Mas | Movistar Team | s.t. |
| 3 | Diego Ulissi | XDS Astana Team | @ 11sec |
| 4 | Chris Harper | Pinarello-Q36.5 Pro Cycling Team | s.t. |
| 5 | Aleksandr Vlasov | Red Bull-BORA-hansgrohe | s.t. |
| 6 | Christian Scaroni | XDS Astana Team | 1:13 |
| 7 | Ludovico Crescioli | Team Polti-VisitMalta | 1:15 |
| 8 | Simone Gualdi | Lotto-Intermarché | 2:17 |
| 9 | Warren Barguil | Team Picnic PostNL | 2:19 |
| 10 | Andrea Raccagni Noviero | Soudal Quick-Step | s.t. |
GC after stage 11:
1,843 kilometers raced so far at an average speed of 41.608 km/hr
| 1 | Afonso Eulalio | Bahrain Victorious | 44hr 17min 41sec |
| 2 | Jonas Vingegaard | Team Visma | Lease a Bike | @ 27sec |
| 3 | Thymen Arensman | Netcompany INEOS Cycling Team | 1:57 |
| 4 | Felix Gall | Decathlon CMA CGM Team | 2:24 |
| 5 | Ben O'Connor | Team Jayco-AlUla | 2:48 |
| 6 | Jai Hindley | Red Bull-BORA-hansgrohe | 3:06 |
| 7 | Michael Storer | Tudor Pro Cycling Team | 3:28 |
| 8 | Derek Gee-West | Lidl-Trek | 3:34 |
| 9 | Giulio Pellizzari | Red Bull-BORA-hansgrohe | 3:36 |
| 10 | Chris Harper | Pinarello-Q36.5 Pro Cycling Team | 4:09 |
Tuesday, May 19: Stage 10, Viareggio - Massa 42 km individual time trial
Complete stage 10 results, stage story, photos, map & profile

Stage winner and Italian time trial champion Filippo Ganna rolls off the start ramp. RCS photo
Results:
42 kilometers raced at an average speed of 54.922 km/hr
| 1 | Filippo Ganna | Netcompany INEOS Cycling Team | 45min 53sec |
| 2 | Thymen Arensman | Netcompany INEOS Cycling Team | @ 1min 54sec |
| 3 | Remi Cavagna | Groupama-FDJ United | 1:59 |
| 4 | Sjoerd Bax | Pinarello-Q36.5 Pro Cycling Team | 2:04 |
| 5 | Derek Gee-West | Lidl-Trek | 2:16 |
| 6 | Max Walscheid | Lidl-Trek | 2:17 |
| 7 | Johan Price-Pejtersen | Alpecin-Premier Tech | 2:29 |
| 8 | Mikkel Bjerg | UAE Team Emirates-XRG | 2:33 |
| 9 | Lorenzo Milesi | Movistar Team | 2:40 |
| 10 | Niklas Larsen | Unibet Rose Rockets | 2:42 |
GC after stage 10:
1,648 kilometers raced so far at an average speed of 41.536 km/hr
| 1 | Afonso Eulalio | Bahrain Victorious | 39hr 40min 34sec |
| 2 | Jonas Vingegaard | Team Visma | Lease a Bike | @ 27sec |
| 3 | Thymen Arensman | Netcompany INEOS Cycling Team | 1:57 |
| 4 | Felix Gall | Decathlon CMA CGM Team | 2:24 |
| 5 | Ben O'Connor | Team Jayco-AlUla | 2:48 |
| 6 | Jai Hindley | Red Bull-BORA-hansgrohe | 3:06 |
| 7 | Michael Storer | Tudor Pro Cycling Team | 3:28 |
| 8 | Derek Gee-West | Lidl-Trek | 3:34 |
| 9 | Giulio Pellizzari | Red Bull-BORA-hansgrohe | 3:36 |
| 10 | Markel Beloki | EF Education-EasyPost | 4:16 |
Monday, May 18: Rest Day 2
The Giro d’Italia observes a rest day. The race will resume on Tuesday with the Viareggio–Massa time trial, 42 km.
Sunday, May 17: Stage 9, Cervia - Corno alle Scale, 184 km
Complete stage 9 results, stage story, photos, map & profile

Jonas Vingegaard solos across the finish line to win the stage. La Presse photo
Results:
184 kilometers raced at an average speed of 42.404 km/hr
| 1 | Jonas Vingegaard | Team Visma | Lease a Bike | 4hr 20min 21sec |
| 2 | Felix Gall | Decathlon CMA CGM Team | @ 12sec |
| 3 | Davide Piganzoli | Team Visma | Lease a Bike | 0:34 |
| 4 | Thymen Arensman | Netcompany INEOS Cycling Team | s.t. |
| 5 | Afonso Eulalio | Bahrain Victorious | 0:41 |
| 6 | Derek Gee-West | Lidl-Trek | 0:46 |
| 7 | Mathys Rondel | Tudor Pro Cycling Team | s.t. |
| 8 | Sepp Kuss | Team Visma | Lease a Bike | s.t. |
| 9 | Jai Hindley | Red Bull-BORA-hansgrohe | 0:50 |
GC after stage 9:
1,606 kilometers raced so far at an average speed of 41.361 km/hr
| 1 | Afonso Eulalio | Bahrain Victorious | 38hr 49min 44sec |
| 2 | Jonas Vingegaard | Team Visma | Lease a Bike | @ 2min 24sec |
| 3 | Felix Gall | Decathlon CMA CGM Team | 2:59 |
| 4 | Jai Hindley | Red Bull-BORA-hansgrohe | 4:32 |
| 5 | Christian Scaroni | XDS Astana Team | 4:43 |
| 6 | Thymen Arensman | Netcompany INEOS Cycling Team | 5:00 |
| 7 | Mathys Rondel | Tudor Pro Cycling Team | 5:01 |
| 8 | Ben O'Connor | Team Jayco-AlUla | 5:03 |
| 9 | Giulio Pellizzari | Red Bull-BORA-hansgrohe | 5:15 |
| 10 | Michael Storer | Tudor Pro Cycling Team | 5:20 |
Saturday, May 16: Stage 8, Chieti - Fermo, 156 km
Complete stage 8 results, stage story, photos, map & profile

Jhonatan Narvaez wins stage eight. La Presse photo
Results:
156 kilometers raced at an average speed of 45.123 km/hr
| 1 | Jhonatan Narvaez | UAE Team Emirates-XRG | 3hr 27min 26sec |
| 2 | Andreas Leknessund | Uno-X Mobility | @ 32sec |
| 3 | Martin Tjøtta | Uno-X Mobility | 0:42 |
| 4 | Thomas Silva | XDS Astana Team | 0:44 |
| 5 | Lorenzo Milesi | Movistar Team | s.t. |
| 6 | Christian Scaroni | XDS Astana Team | 0:48 |
| 7 | Corbin Strong | NSN Cycling Team | 0:55 |
| 8 | Juan Pedro Lopez | Movistar Team | s.t. |
| 9 | Wout Poels | Unibet Rose Rockets | 0:58 |
| 10 | Markel Beloki | EF Education-EasyPost | 1:00 |
GC after stage 8:
1,422 kilometers raced so far at an average speed of 41.243 km/hr
| 1 | Afonso Eulalio | Bahrain Victorious | 34hr 28min 42sec |
| 2 | Jonas Vingegaard | Team Visma | Lease a Bike | @ 3min 15sec |
| 3 | Felix Gall | Decathlon CMA CGM Team | 3:34 |
| 4 | Christian Scaroni | XDS Astana Team | 4:18 |
| 5 | Jai Hindley | Red Bull-BORA-hansgrohe | 4:23 |
| 6 | Giulio Pellizzari | Red Bull-BORA-hansgrohe | 4:28 |
| 7 | Ben O'Connor | Team Jayco-AlUla | 4:32 |
| 8 | Mathys Rondel | Tudor Pro Cycling Team | 4:56 |
| 9 | Thymen Arensman | Netcompany INEOS Cycling Team | 5:07 |
| 10 | Michael Storer | Tudor Pro Cycling Team | 5:11 |
Friday, May 15: Stage 7, Formia - Blockhaus, 244 km
Stage 7 complete results, stage story, photos, map & profile

Jonas Vingegaard wins stage seven. La Presse photo
Results:
244 kilometers raced at an average speed of 39.648 km/hr
| 1 | Jonas Vingegaard | Team Visma | Lease a Bike | 6hr 9min 15sec |
| 2 | Felix Gall | Decathlon CMA CGM Team | @ 13sec |
| 3 | Jai Hindley | Red Bull-BORA-hansgrohe | 1:02 |
| 4 | Giulio Pellizzari | Red Bull-BORA-hansgrohe | 1:05 |
| 5 | Ben O'Connor | Team Jayco-AlUla | s.t. |
| 6 | Mathys Rondel | Tudor Pro Cycling Team | 1:29 |
| 7 | Giulio Ciccone | Lidl-Trek | 1:40 |
| 8 | Derek Gee-West | Lidl-Trek | 1:42 |
| 9 | Michael Storer | Tudor Pro Cycling Team | 1:44 |
| 10 | Thymen Arensman | Netcompany INEOS Cycling Team | s.t. |
GC after stage 7:
1,266 kilometers raced so far at an average speed of 40.852 km/hr
| 1 | Afonso Eulalio | Bahrain Victorious | 30hr 59min 23sec |
| 2 | Jonas Vingegaard | Team Visma | Lease a Bike | @ 3min 17sec |
| 3 | Felix Gall | Decathlon CMA CGM Team | 3:34 |
| 4 | Jai Hindley | Red Bull-BORA-hansgrohe | 4:25 |
| 5 | Giulio Pellizzari | Red Bull-BORA-hansgrohe | 4:28 |
| 6 | Ben O'Connor | Team Jayco-AlUla | 4:32 |
| 7 | Mathys Rondel | Tudor Pro Cycling Team | 4:56 |
| 8 | Giulio Ciccone | Lidl-Trek | 4:57 |
| 9 | Thymen Arensman | Netcompany INEOS Cycling Team | 5:07 |
| 10 | Michael Storer | Tudor Pro Cycling Team | 5:11 |
Thursday, May 14: Stage 6, Paestum - Napoli (Naples), 141 km
Stage 6 complete results, stage story, photos, map & profile

A clearly happy Davide Ballerini wins stage six. Sirotti photo
Results:
141 kilometers raced at an average speed of 42.406 km/hr
| 1 | Davide Ballerini | XDS Astana Team | 3hr 19min 30sec |
| 2 | Jasper Stuyven | Soudal Quick-Step | s.t. |
| 3 | Paul Magnier | Soudal Quick-Step | s.t. |
| 4 | Jensen Plowright | Alpecin-Premier Tech | s.t. |
| 5 | Ben Turner | Netcompany INEOS Cycling Team | s.t. |
| 6 | Alec Segaert | Bahrain Victorious | s.t. |
| 7 | Luca Mozzato | Tudor Pro Cycling Team | s.t. |
| 8 | Filippo Magli | Bardiani-CSF 7 Saber | s.t. |
| 9 | Enrico Zanoncello | Bardiani-CSF 7 Saber | s.t. |
| 10 | Casper van Uden | Team Picnic PostNL | s.t. |
GC after stage 6:
1,022 kilometers raced so far at an average speed of 44.850 km/hr
| 1 | Afonso Eulalio | Bahrain Victorious | 24hr 47min 13sec |
| 2 | Igor Arrieta | UAE Team Emirates-XRG | @ 2min 51sec |
| 3 | Christian Scaroni | XDS Astana Team | 3:34 |
| 4 | Andrea Raccagni Noviero | Soudal Quick-Step | 3:39 |
| 5 | Johannes Kulset | Uno-X Mobility | 5:17 |
| 6 | Giulio Ciccone | Lidl-Trek | 6:12 |
| 7 | Jan Christen | UAE Team Emirates-XRG | 6:16 |
| 8 | Florian Stork | Tudor Pro Cycling Team | s.t. |
| 9 | Egan Bernal | Netcompany INEOS Cycling Team | s.t. |
| 10 | Thymen Arensman | Netcompany INEOS Cycling Team | 6:18 |
Wednesday, May 13: Stage 5, Praia a Mare - Potenza, 203 km
Complete stage 5 results, stage story, photos, map & profile

Igor Arrieta wins the stage. Second-place Afonso Eulalio (just behind Arrieta) becomes the new GC leader. RCS photo
Results:
203 kilometers raced at an average speed of 39.565 km/hr
| 1 | Igor Arrieta | UAE Team Emirates-XRG | 5hr 7min 51sec |
| 2 | Afonso Eulalio | Bahrain Victorious | @ 2sec |
| 3 | Thomas Silva | XDS Astana Team | 0:51 |
| 4 | Lorenzo Milesi | Movistar Team | 1:29 |
| 5 | Christian Scaroni | XDS Astana Team | 1:30 |
| 6 | Gianmarco Garofoli | Soudal Quick-Step | s.t. |
| 7 | Koen Bouwman | Team Jayco-AlUla | 3:11 |
| 8 | Johannes Kulset | Uno-X Mobility | 3:13 |
| 9 | Andrea Raccagni Noviero | Soudal Quick-Step | 3:29 |
| 10 | Ludovico Crescioli | Team Polti-VisitMalta | 4:42 |
GC after stage 5:
881 kilometers raced so far at an average speed of 41.049 km/hr
| 1 | Afonso Eulalio | Bahrain Victorious | 21hr 27min 43sec |
| 2 | Igor Arrieta | UAE Team Emirates-XRG | @ 2min 51sec |
| 3 | Christian Scaroni | XDS Astana Team | 3:34 |
| 4 | Andrea Raccagni Noviero | Soudal Quick-Step | 3:39 |
| 5 | Johannes Kulset | Uno-X Mobility | 5:17 |
| 6 | Giulio Ciccone | Lidl-Trek | 6:12 |
| 7 | Jan Christen | UAE Team Emirates-XRG | 6:16 |
| 8 | Florian Stork | Tudor Pro Cycling Team | s.t. |
| 9 | Egan Bernal | Netcompany INEOS Cycling Team | s.t. |
| 10 | Thymen Arensman | Netcompany INEOS Cycling Team | 6:18 |
Tuesday, May 12: Stage 4, Catanzaro - Cosenza, 138 km
Complete stage 4 results, stage story, photos, map & profile

Jhonatan Narvaez wins stage four. La Presse photo
Results:
138 kilometers raced at an average speed of 43.864 km/hr
| 1 | Jhonatan Narvaez | UAE Team Emirates-XRG | 3hr 8min 46sec |
| 2 | Orluis Aular | Movistar Team | s.t. |
| 3 | Giulio Ciccone | Lidl-Trek | s.t. |
| 4 | Ben Turner | Netcompany INEOS Cycling Team | s.t. |
| 5 | Alessandro Pinarello | NSN Cycling Team | s.t. |
| 6 | Afonso Eulalio | Bahrain Victorious | s.t. |
| 7 | Lennert Van Eetvelt | Lotto-Intermarché | s.t. |
| 8 | Diego Ulissi | XDS Astana Team | s.t. |
| 9 | Andrea Raccagni Noviero | Soudal Quick-Step | s.t. |
| 10 | Michael Valgren | EF Education-EasyPost | s.t. |
GC after stage 4:
681 kilometers raced so far at an average speed of 41.743 km/hr
| 1 | Giulio Ciccone | Lidl-Trek | 16hr 18min 51sec |
| 2 | Jan Christen | UAE Team Emirates-XRG | @ 4sec |
| 3 | Florian Stork | Tudor Pro Cycling Team | s.t. |
| 4 | Egan Bernal | Netcompany INEOS Cycling Team | s.t. |
| 5 | Thymen Arensman | Netcompany INEOS Cycling Team | 0:06 |
| 6 | Giulio Pellizzari | Red Bull-BORA-hansgrohe | s.t. |
| 7 | Lennert Van Eetvelt | Lotto-Intermarché | 0:10 |
| 8 | Enric Mas | Movistar Team | s.t. |
| 9 | Markel Beloki | EF Education-EasyPost | s.t. |
| 10 | Jan Hirt | NSN Cycling Team | s.t. |
Monday, May 11: Rest Day 1
The 16th Grande Partenza abroad comes to an end with plenty of positive memories. Tonight and tomorrow, the Giro heads back to Italy. Monday brings the first rest day before racing resumes on Tuesday with Catanzaro–Cosenza, as the Corsa Rosa returns on Italian roads in Calabria.
Sunday, May 10: Stage 3, Plovdiv - Sofia, 175 km
Complete stage 3 results, stage story, photos, map & profile

Paul Magnier wins stage three. Sirotti photo
Results:
175 kilometers raced at an average speed of 42.051 km/hr
| 1 | Paul Magnier | Soudal Quick-Step | 4hr 9min 42sec |
| 2 | Jonathan Milan | Lidl-Trek | s.t. |
| 3 | Dylan Groenewegen | Unibet Rose Rockets | s.t. |
| 4 | Madis Mihkels | EF Education-EasyPost | s.t. |
| 5 | Matteo Malucelli | XDS Astana Team | s.t. |
| 6 | Erlend Blikra | Uno-X Mobility | s.t. |
| 7 | Pascal Ackermann | Team Jayco-AlUla | s.t. |
| 8 | Davide Ballerini | XDS Astana Team | s.t. |
| 9 | Tobias Lund Andresen | Decathlon CMA CGM Team | s.t. |
| 10 | Enrico Zanoncello | Bardiani-CSF 7 Saber | s.t. |
GC after stage 3:
543 kilometers raced so far at an average speed of 41.236 km/hr
| 1 | Thomas Silva | XDS Astana Team | 13hr 10min 5sec |
| 2 | Florian Stork | Tudor Pro Cycling Team | @ 4sec |
| 3 | Egan Bernal | Netcompany INEOS Cycling Team | s.t. |
| 4 | Thymen Arensman | Netcompany INEOS Cycling Team | 0:06 |
| 5 | Giulio Ciccone | Lidl-Trek | s.t. |
| 6 | Jan Christen | UAE Team Emirates-XRG | 0:10 |
| 7 | Martin Tjøtta | Uno-X Mobility | s.t. |
| 8 | Johannes Kulset | Uno-X Mobility | s.t. |
| 9 | Enric Mas | Movistar Team | s.t. |
| 10 | Lennert Van Eetvelt | Lotto-Intermarché | s.t. |
Saturday, May 9: Stage 2, Burgas - Veliko Tarnovo, 221 km
Complete stage 2 results, stage story, photos, map & profile

Thomas Silva wins stage two. Sirotti photo
Results:
221 kilometers raced at an average speed of 39.067 km/hr
| 1 | Thomas Silva | XDS Astana Team | 5hr 39min 25sec |
| 2 | Florian Stork | Tudor Pro Cycling Team | s.t. |
| 3 | Giulio Ciccone | Lidl-Trek | s.t. |
| 4 | Christian Scaroni | XDS Astana Team | s.t. |
| 5 | Giulio Pellizzari | Red Bull-BORA-hansgrohe | s.t. |
| 6 | Matteo Sobrero | Lidl-Trek | s.t. |
| 7 | Andreas Leknessund | Uno-X Mobility | s.t. |
| 8 | Jan Christen | UAE Team Emirates-XRG | s.t. |
| 9 | Martin Tjøtta | Uno-X Mobility | s.t. |
| 10 | Mathys Rondel | Tudor Pro Cycling Team | s.t. |
GC after stage 2:
368 kilometers raced so far at an average speed of 40.860 km/hr
| 1 | Thomas Silva | XDS Astana Team | 9hr 0min 23sec |
| 2 | Florian Stork | Tudor Pro Cycling Team | @ 4sec |
| 3 | Egan Bernal | Netcompany INEOS Cycling Team | s.t. |
| 4 | Thymen Arensman | Netcompany INEOS Cycling Team | 0:06 |
| 5 | Giulio Ciccone | Lidl-Trek | s.t. |
| 6 | Jan Christen | UAE Team Emirates-XRG | 0:10 |
| 7 | Johannes Kulset | Uno-X Mobility | s.t. |
| 8 | Martin Tjøtta | Uno-X Mobility | s.t. |
| 9 | Lennert Van Eetvelt | Lotto-Intermarché | s.t. |
| 10 | Darren Rafferty | EF Education-EasyPost | s.t. |
Friday, May 8: Stage 1, Nessebar - Burgas, Bulgaria, 147 km
Complete stage 1 results, stage story, photos, map & profile

Paul Magnier wins stage one. Sirotti photo
Results:
147 kilometers raced at an average speed of 43.852 km/hr
| 1 | Paul Magnier | Soudal Quick-Step | 3hr 21min 8sec |
| 2 | Tobias Lund Andresen | Decathlon CMA CGM Team | s.t. |
| 3 | Ethan Vernon | NSN Cycling Team | s.t. |
| 4 | Jonathan Milan | Lidl-Trek | s.t. |
| 5 | Madis Mihkels | EF Education-EasyPost | s.t. |
| 6 | Giovanni Lonardi | Team Polti-VisitMalta | s.t. |
| 7 | Pascal Ackermann | Team Jayco-AlUla | s.t. |
| 8 | Tord Gudmestad | Decathlon CMA CGM Team | s.t. |
| 9 | Max Walscheid | Lidl-Trek | s.t. |
| 10 | Dries van Gestel | Soudal Quick-Step | s.t. |
GC after stage 1:
| 1 | Paul Magnier | Soudal Quick-Step | 3hr 20min 58sec |
| 2 | Tobias Lund Andresen | Decathlon CMA CGM Team | @ 4sec |
| 3 | Manuele Tarozzi | Bardiani-CSF 7 Saber | s.t. |
| 4 | Ethan Vernon | NSN Cycling Team | 0:06 |
| 5 | Diego Sevilla | Team Polti-VisitMalta | s.t. |
| 6 | António Morgado | UAE Team Emirates-XRG | 0:08 |
| 7 | Jonathan Milan | Lidl-Trek | 0:10 |
| 8 | Madis Mihkels | EF Education-EasyPost | s.t. |
| 9 | Giovanni Lonardi | Team Polti-VisitMalta | s.t. |
| 10 | Pascal Ackermann | Team Jayco-AlUla | s.t. |
Upcoming stages:
Friday, May 29: Stage 19, Feltre - Alleghe (Piani di Pezzè), 151 km
Classic Dolomite tappone in climbing style but modern in length: 151 km with 5,000 m of elevation. Riders face Passo Duran, Passo Staulanza (via the steep Coi variant, up to 19%), Passo Giau from its hardest side (Cima Coppi, 2236 m), Passo Falzarego, then the final short climb (5 km at ~10%, peaks 15%).

Stage 19 map

Stage 19 profile
Saturday, May 30: Stage 20, Gemona del Friuli 1976-2026 – Piancavallo, 199 km
Rolling early terrain, then a double ascent of Piancavallo. The route crosses the epicentre of the 1976 Friuli earthquake (990 victims, tens of thousands displaced) before climbing Piancavallo twice, with a loop including Lago di Barcis. Pantani won here in 1998 before taking the Giro overall.

Stage 20 map

Stage 20 profile
Sunday, May 31: 21st & Final Stage, Roma - Roma, 131 km
Final parade stage, essentially identical to recent years: an opening out-and-back run to Ostia, followed by several laps of the city-centre circuit.

Stage 21 map

Stage 21 profile
List of stages, December 1, 2025:
| Stage | Date | Start/Finish | Distance |
| 1 | Fri, 08/05/2026 | Nessebar - Burgas | 156 km |
| 2 | Sat. 09/05/2026 | Burgas - Veliko Tarnovo | 220 km |
| 3 | Sun. 10/05/2026 | Plovdiv – Sofia | 174 km |
| Mon 11/5 | Transfer to Italy | ||
| 4 | Tue. 12/05/2026 | Catanzaro – Cosenza | 144 km |
| 5 | Wed. 13/05/2026 | Praia a Mare – Potenza | 204 km |
| 6 | Thu. 14/05/2026 | Paestum – Napoli | 161 km |
| 7 | Fri. 15/05/2026 | Formia – Blockhaus | 246 km |
| 8 | Sat. 16/05/2026 | Chieti – Fermo | 159 km |
| 9 | Sun. 17/05/2026 | Cervia - Corno alle Scale | 184 km |
| Mon 18/5 | Rest Day | ||
| 10 | Tue. 19/05/2026 | Viareggio – Massa ITT | 40,2 km |
| 11 | Wed. 20/05/2026 | Porcari (Paper District) – Chiavari | 178 km |
| 12 | Thu. 21/05/2026 | Imperia - Novi Ligure | 177 km |
| 13 | Fri. 22/05/2026 | Alessandria – Verbania | 186 km |
| 14 | Sat. 23/05/2026 | Aosta – Pila | 133 km |
| 15 | Sun. 24/05/2026 | Voghera – Milano | 136 km |
| Mon 25/5 | Rest Day | ||
| 16 | Tue. 26/05/2026 | Bellinzona – Carì | 113 km |
| 17 | Wed. 27/05/2026 | Cassano d'Adda – Andalo | 200 km |
| 18 | Thu. 28/05/2026 | Fai della Paganella - Pieve di Soligo | 167 km |
| 19 | Fri. 29/05/2026 | Feltre - Alleghe (Piani di Pezzè) | 151 km |
| 20 | Sat. 30/05/2026 | Gemona del Friuli 1976-2026 – Piancavallo | 199 km |
| 21 | Sun. 31/05/2026 | Roma – Roma | 131 km |
| Total distance: | 3,459.2 km | ||
| Average stage: | 164.7 km |
Organizer's summary of the 2026 route:
Grande Partenza Bulgaria
Three stages with several pitfalls, especially the second, will serve as the appetizer for the Corsa Rosa in Bulgaria. The first stage starts and finishes on the Black Sea coast, from Nessebar to Burgas, and will award the first Maglia Rosa. The race then sets off from Burgas to reach Veliko Tarnovo after a demanding 220 km, featuring a final climb of 3.5 km at 7.5%. The final stage in Bulgaria will finish in the capital Sofia, once again favouring the sprinters, starting from Plovdiv.
First Week
After the first rest day on Monday 11 May, the return to Italy is followed by stages that may suit the sprinters, though not necessarily for a full bunch finish, alternating with mountain stages. The race heads north up the peninsula, with the first summit finish at Blockhaus via its most feared side (Roccamorice). The week ends with the “Muri” stage to Fermo and the Apennine summit finish at Corno alle Scale, which returns 22 years after Gilberto Simoni’s victory in 2004.
Second Week
Second rest day on Monday 18 May. Racing resumes with a 40.2 km individual time trial entirely in Tuscany, from Viareggio to Massa – the Tappa Bartali of this edition. Three more stages follow, alternating demanding finales with bunch sprints, in preparation for the weekend in the Aosta Valley, where the peloton heads to Pila (back for the first time in over 30 years) with a brutal 133 km stage featuring more than 4,400 m of elevation gain. Sunday is expected to be a sprint finish in Milan, which will host the 90th stage finish in its history.
Third Week
The third week begins with a bang thanks to the very short but extremely intense stage held entirely in Switzerland, from Bellinzona to Carì. Two mixed stages serve as a warm-up for the final two very tough days. The Dolomite queen stage links Feltre with Piani di Pezzè (another historic return, after Marco Pantani’s victory at the 1992 Giro d’Italia for amateurs). The route tackles the Duran, Staulanza (with the Coi variant), Giau (Cima Coppi) and Falzarego passes, retracing some of the Giro’s most iconic roads. The following day, the Corsa Rosa commemorates the devastating Friuli earthquake (6 May 1976), passing through the affected area before climbing Piancavallo twice, which will decide the final general classification. Grande Arrivo in Rome with the traditional parade circuit through the Eternal City.
Numbers & Facts
3.459 km total distance
50.000 m elevation gain
16th foreign Grande Partenza in Giro history
8th Grande Arrivo in Rome
40.2 km of individual time trialling
90 stage finishes in Milan
Passo Giau as Cima Coppi for the 4th time (after 1973 – José Manuel Fuente; 2011 – Stefano Garzelli; 2021 – Egan Bernal)