
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

Map of the 2026 Giro d'Italia, December 1, 2025
Saturday, May 16: Stage 8, Chieti - Fermo, 156 km
Stage 8 map & profile | Stage 8 photos

Jhonatan Narvaez wins stage eight. La Presse photo
Les Woodland's book Cycling's 50 Triumphs and Tragedies: The rise and fall of bicycle racing's champions 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 Fermo at 2:40 PM, local time: 14C (58F), thunder in the vicinity with the wind from the northwest at 31 km/hr (20 mph). There is an 85% chance of rain. The rain is forecast to end about 4:15 PM.
The stage: Mixed stage: first part along the Adriatic, flat and on wide, mostly straight roads, followed by a second part in the Fermo hinterland with a succession of ups and downs and several “walls,” especially towards the finish. After Cupra Marittima, the route heads inland and climbs the first KOM at Montefiore dell’Aso, followed by the one at Monterubbiano. The race then reaches Fermo for the first time, tackling the “wall” of Via Cardarelli, before returning to the SS16 Adriatica to face the Capodarco climb (KOM) and, in quick succession, the Fermo-Reputolo climb leading to the finish.
Final kilometers
The final kilometers are essentially all uphill. After the Reputolo climb, which leads into the town of Fermo (gradients up to 22%), the route continues climbing through narrow urban streets paved in porphyry, with steep gradients. A short descent at 750 m to go is followed by a final ramp to the finish at around 10%. Road width 6 m, asphalt surface.
The race: Early in the stage Fabio Christen (Pinarello Q36.5 Pro Cycling Team) abandoned. He collided with another rider while fighting to get into the breakaway. The Swiss rider appeared to be in considerable pain in his right arm and received treatment from the race medical staff, but was unable to continue racing.
Here's the race report from stage winner Jhonatan Narvaez's UAE Team Emirates-XRG:
Making it three stage wins in a week for UAE Team Emirates-XRG, Jhonatan Narváez produced a fantastic display to win stage 8 of the Giro d’Italia. It is the Ecuadorian’s second stage victory of this year’s race, with Narváez making his race-winning move with 9.8km to go.
At that point, the 29-year-old used his powerful kick to dispatch of Andreas Leknessund (Uno-X Mobility), who had joined Narváez and his UAE Team Emirates-XRG teammate Mikkel Bjerg in a remarkable long-range breakaway. Their move was ultimately the defining one of the day, and produced a thrilling battle for the stage honours.

Opening ceremonies: Joans Vingegaard's (on left) Visma | Lease a Bike team is presented. RCS photo
On paper, stage 8 was a fantastic opportunity for a breakaway success, and as such, the battle to make it into the day’s definitive break was immense. Through the first few hours of racing, no move had been able to make things stick, and still, it was the peloton at the head of the race. At this point, UAE Team Emirates-XRG decided to make a daring attack.
Clipping off the front of the bunch with 76km of racing to go, Narváez and his teammate Bjerg formed a two-man breakaway, and peddled into a whirling headwind that was battering the race. Not to be deterred, the pair pushed on, and a few kilometres later, were joined by Leknessund of Uno-X Mobility.

On the start line: Mountains classification leader Jonas Vingegaard and GC leader Afonso Eulalio. RCS photo
Through the next hour, the trio extended their advantage over the peloton, as various groups struggled to form a pursuit behind.
Helping the cause of Bjerg and Narváez, when an eventual chasing group was coalesced, amongst its midst was the UAE Team Emirates-XRG pair of Jan Christen and Igor Arrieta. Thanks to their attendance, the collaboration of the chasing group was weak, with none of the team’s rivals interested in dragging Christen or Arrieta towards the front of the race.

Time to race. Stage 8 gets its official start.
In the meantime, the three-man breakaway of Narváez, Bjerg and Leknessund rallied to stretch their advantage to well over a minute. Into the final 30km, it quickly became obvious that the stage win would be contested amongst the three. It was the moment for Narváez and Bjerg to come up with a plan to get rid of Leknessund’s company.
The stage finale certainly suited Narváez’s punchy characteristics, and as such, it was Bjerg who played a selfless role in his teammate’s ultimate victory. With 10.7km to ride, the Danish rouleur sacrificed himself and made the first attack, drawing out an immediate and required response from Leknessund.
Digging deep into his resources, Leknessund closed the gap to Bjerg, but was predictably vulnerable to a counter-attack from Narváez. For 700m or so, Leknessund held the wheel of the Ecuadorian national champion, but it could only last for so long.
With 9.8km to ride, Narváez made another acceleration and this time, the Uno-X Mobility rider could not offer up a response. It was the Ecuadorian’s definitive attack, and it would prove decisive.
The job was not finished in one fell swoop, however, with Leknessund battling hard and the parcours offering its own difficulties over the final kilometres. On the approach into Fermo, one nasty climb after another awaited Narváez, and the Ecuadorian had to fight the inhumane gradients to bring home the day’s victory.
The 29-year-old is in sparkling form and needed every remaining ounce of energy to cross the line a little over 30 seconds ahead of Leknessund. Speaking after the finish, the stage 8 winner was quick to heap praise on his teammate, Bjerg, whose assist proved invaluable.
Narváez: “It was a nice stage for me. I was really good in the first part, but I think we played really well with my teammates. I think he was the man of the day, Mikkel Bjerg. If you see him, he is always working for the team. He is a guy who you always see, and he is a guy who does a lot for the team. He was the man of the day, for me.
“I think in the end it was about the legs. if you see the first part, it was full headwind, and riding the flat in the headwind was really hard for me. I think we never give up. At 60km to go, we think, ‘we ride smart, and then we have the opportunity to go for the stage.
“For sure, it is important for me, even coming from the injury in January. We have only five guys [left in the race], but we play well, we play smart, there is a great atmosphere in the team, so I think there are still more victories for us in the next weeks.”
Complete 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 |
| 11 | Brieuc Rolland | Groupama-FDJ United | 1:02 |
| 12 | Jan Christen | UAE Team Emirates-XRG | s.t. |
| 13 | Simone Gualdi | Lotto-Intermarché | s.t. |
| 14 | Gianmarco Garofoli | Soudal Quick-Step | 1:08 |
| 15 | Filippo Zana | Soudal Quick-Step | 1:12 |
| 16 | Mikkel Bjerg | UAE Team Emirates-XRG | s.t. |
| 17 | Thomas Pesenti | Team Polti-VisitMalta | 1:27 |
| 18 | Mattia Bais | Team Polti-VisitMalta | 1:29 |
| 19 | Andrea Mifsud | Team Polti-VisitMalta | 1:35 |
| 20 | Igor Arrieta | UAE Team Emirates-XRG | 1:36 |
| 21 | Mark Donovan | Pinarello-Q36.5 Pro Cycling Team | 1:38 |
| 22 | Alexander Cepeda | EF Education-EasyPost | 1:43 |
| 23 | Jai Hindley | Red Bull-BORA-hansgrohe | 1:51 |
| 24 | Jonas Vingegaard | Team Visma | Lease a Bike | s.t. |
| 25 | Egan Bernal | Netcompany INEOS Cycling Team | 1:53 |
| 26 | Afonso Eulalio | Bahrain Victorious | s.t. |
| 27 | Thymen Arensman | Netcompany INEOS Cycling Team | s.t. |
| 28 | Enric Mas | Movistar Team | s.t. |
| 29 | Michael Storer | Tudor Pro Cycling Team | s.t. |
| 30 | Giulio Pellizzari | Red Bull-BORA-hansgrohe | s.t. |
| 31 | Mathys Rondel | Tudor Pro Cycling Team | s.t. |
| 32 | Gregor Mühlberger | Decathlon CMA CGM Team | s.t. |
| 33 | Felix Gall | Decathlon CMA CGM Team | s.t. |
| 34 | Davide Piganzoli | Team Visma | Lease a Bike | s.t. |
| 35 | Lennert Van Eetvelt | Lotto-Intermarché | s.t. |
| 36 | Ben O'Connor | Team Jayco-AlUla | s.t. |
| 37 | Martin López | XDS Astana Team | s.t. |
| 38 | David de la Cruz | Pinarello-Q36.5 Pro Cycling Team | s.t. |
| 39 | Chris Harper | Pinarello-Q36.5 Pro Cycling Team | s.t. |
| 40 | Derek Gee-West | Lidl-Trek | s.t. |
| 41 | Jan Hirt | NSN Cycling Team | s.t. |
| 42 | Aleksandr Vlasov | Red Bull-BORA-hansgrohe | s.t. |
| 43 | Damiano Caruso | Bahrain Victorious | 2:01 |
| 44 | Alan Hatherly | Team Jayco-AlUla | 2:15 |
| 45 | Josh Kench | Groupama-FDJ United | 2:21 |
| 46 | Johannes Kulset | Uno-X Mobility | s.t. |
| 47 | Embret Svestad-Bårdseng | Netcompany INEOS Cycling Team | s.t. |
| 48 | Callum Scotson | Decathlon CMA CGM Team | 2:39 |
| 49 | Sepp Kuss | Team Visma | Lease a Bike | 2:47 |
| 50 | Vicente Rojas | Bardiani-CSF 7 Saber | 2:58 |
| 51 | Ben Turner | Netcompany INEOS Cycling Team | 3:04 |
| 52 | Filippo Turconi | Bardiani-CSF 7 Saber | 3:24 |
| 53 | Koen Bouwman | Team Jayco-AlUla | 3:31 |
| 54 | Gijs Leemreize | Team Picnic PostNL | 3:58 |
| 55 | Alessandro Tonelli | Team Polti-VisitMalta | 4:27 |
| 56 | Johannes Staune-Mittet | Decathlon CMA CGM Team | s.t. |
| 57 | Amanuel Ghebreigzabhier | Lidl-Trek | 4:35 |
| 58 | Rémy Rochas | Groupama-FDJ United | 4:37 |
| 59 | Ludovico Crescioli | Team Polti-VisitMalta | 4:46 |
| 60 | Magnus Sheffield | Netcompany INEOS Cycling Team | 4:51 |
| 61 | Giovanni Aleotti | Red Bull-BORA-hansgrohe | 5:10 |
| 62 | Ben Zwiehoff | Red Bull-BORA-hansgrohe | s.t. |
| 63 | William Barta | Tudor Pro Cycling Team | s.t. |
| 64 | Nick Schultz | NSN Cycling Team | 5:22 |
| 65 | David González | Pinarello-Q36.5 Pro Cycling Team | 5:34 |
| 66 | Martin Marcellusi | Bardiani-CSF 7 Saber | 5:47 |
| 67 | Nickolas Zukowsky | Pinarello-Q36.5 Pro Cycling Team | 6:05 |
| 68 | Giulio Ciccone | Lidl-Trek | 6:38 |
| 69 | Diego Ulissi | XDS Astana Team | s.t. |
| 70 | Bart Lemmen | Team Visma | Lease a Bike | 7:20 |
| 71 | Victor Campenaerts | Team Visma | Lease a Bike | s.t. |
| 72 | Jack Haig | Netcompany INEOS Cycling Team | s.t. |
| 73 | Fabio Van den Bossche | Soudal Quick-Step | 7:28 |
| 74 | Gianni Moscon | Red Bull-BORA-hansgrohe | 7:30 |
| 75 | Einer Rubio | Movistar Team | s.t. |
| 76 | Niklas Larsen | Unibet Rose Rockets | 7:45 |
| 77 | Christopher Juul-Jensen | Team Jayco-AlUla | s.t. |
| 78 | Johan Jacobs | Groupama-FDJ United | 7:51 |
| 79 | Lawrence Warbasse | Tudor Pro Cycling Team | 8:50 |
| 80 | Warren Barguil | Team Picnic PostNL | s.t. |
| 81 | Matteo Sobrero | Lidl-Trek | 8:59 |
| 82 | Javier Romo | Movistar Team | 8:59 |
| 83 | Mirco Maestri | Team Polti-VisitMalta | 9:08 |
| 84 | Alessandro Pinarello | NSN Cycling Team | 9:13 |
| 85 | Francesco Busatto | Alpecin-Premier Tech | s.t. |
| 86 | Edoardo Zambanini | Bahrain Victorious | s.t. |
| 87 | Fredrik Dversnes | Uno-X Mobility | s.t. |
| 88 | Markus Hoelgaard | Uno-X Mobility | s.t. |
| 89 | Nelson Oliveira | Movistar Team | 9:41 |
| 90 | Alec Segaert | Bahrain Victorious | 9:57 |
| 91 | Tobias Lund Andresen | Decathlon CMA CGM Team | 12:03 |
| 92 | Oliver Naesen | Decathlon CMA CGM Team | s.t. |
| 93 | Connor Swift | Netcompany INEOS Cycling Team | s.t. |
| 94 | Toon Aerts | Lotto-Intermarché | s.t. |
| 95 | Tobias Bayer | Alpecin-Premier Tech | 12:31 |
| 96 | Jonas Rutsch | Lotto-Intermarché | s.t. |
| 97 | Nikita Tsvetkov | Bardiani-CSF 7 Saber | s.t. |
| 98 | Madis Mihkels | EF Education-EasyPost | 12:33 |
| 99 | Rasmus Søjberg Pedersen | Decathlon CMA CGM Team | 12:39 |
| 100 | Dion Smith | NSN Cycling Team | s.t. |
| 101 | Mick van Dijke | Red Bull-BORA-hansgrohe | 12:41 |
| 102 | António Morgado | UAE Team Emirates-XRG | s.t. |
| 103 | Tim Rex | Team Visma | Lease a Bike | s.t. |
| 104 | Mathijs Paasschens | Bahrain Victorious | s.t. |
| 105 | Orluis Aular | Movistar Team | 12:44 |
| 106 | Fran Miholjevic | Bahrain Victorious | 14:38 |
| 107 | Iván García Cortina | Movistar Team | 14:41 |
| 108 | Filippo Magli | Bardiani-CSF 7 Saber | s.t. |
| 109 | Luca Paletti | Bardiani-CSF 7 Saber | s.t. |
| 110 | Ethan Vernon | NSN Cycling Team | s.t. |
| 111 | Ryan Mullen | NSN Cycling Team | s.t. |
| 112 | Jensen Plowright | Alpecin-Premier Tech | s.t. |
| 113 | Chris Hamilton | Team Picnic PostNL | s.t. |
| 114 | Paul Penhoët | Groupama-FDJ United | s.t. |
| 115 | Cyril Barthe | Groupama-FDJ United | s.t. |
| 116 | Remi Cavagna | Groupama-FDJ United | s.t. |
| 117 | Florian Stork | Tudor Pro Cycling Team | s.t. |
| 118 | Darren Rafferty | EF Education-EasyPost | s.t. |
| 119 | Timo Kielich | Team Visma | Lease a Bike | s.t. |
| 120 | Jonas Geens | Alpecin-Premier Tech | s.t. |
| 121 | Michael Valgren | EF Education-EasyPost | s.t. |
| 122 | Pascal Ackermann | Team Jayco-AlUla | s.t. |
| 123 | Nico Denz | Red Bull-BORA-hansgrohe | s.t. |
| 124 | Diego Sevilla | Team Polti-VisitMalta | s.t. |
| 125 | Manuele Tarozzi | Bardiani-CSF 7 Saber | s.t. |
| 126 | Jasper Stuyven | Soudal Quick-Step | s.t. |
| 127 | Dries van Gestel | Soudal Quick-Step | s.t. |
| 128 | Ayco Bastiaens | Soudal Quick-Step | s.t. |
| 129 | James Shaw | EF Education-EasyPost | s.t. |
| 130 | Johan Price-Pejtersen | Alpecin-Premier Tech | s.t. |
| 131 | Tord Gudmestad | Decathlon CMA CGM Team | s.t. |
| 132 | Casper van Uden | Team Picnic PostNL | s.t. |
| 133 | Andrea Raccagni Noviero | Soudal Quick-Step | 14:52 |
| 134 | Paul Magnier | Soudal Quick-Step | s.t. |
| 135 | Robin Froidevaux | Tudor Pro Cycling Team | s.t. |
| 136 | Hartthijs de Vries | Unibet Rose Rockets | s.t. |
| 137 | Axel Huens | Groupama-FDJ United | s.t. |
| 138 | Robert Stannard | Bahrain Victorious | s.t. |
| 139 | Sjoerd Bax | Pinarello-Q36.5 Pro Cycling Team | s.t. |
| 140 | Lorenzo Rota | Lotto-Intermarché | s.t. |
| 141 | Matyas Kopecky | Unibet Rose Rockets | s.t. |
| 142 | Luca Vergallito | Alpecin-Premier Tech | 15:07 |
| 143 | Robert Donaldson | Team Jayco-AlUla | s.t. |
| 144 | Sakarias Koller Løland | Uno-X Mobility | s.t. |
| 145 | Dylan Groenewegen | Unibet Rose Rockets | 15:32 |
| 146 | Tomas Kopecky | Unibet Rose Rockets | s.t. |
| 147 | Lukas Kubis | Unibet Rose Rockets | s.t. |
| 148 | Alberto Bettiol | XDS Astana Team | s.t. |
| 149 | Frank van den Broek | Team Picnic PostNL | s.t. |
| 150 | Jonathan Milan | Lidl-Trek | 17:03 |
| 151 | Filippo Ganna | Netcompany INEOS Cycling Team | 17:57 |
| 152 | Davide Ballerini | XDS Astana Team | s.t. |
| 153 | Matteo Malucelli | XDS Astana Team | s.t. |
| 154 | Enrico Zanoncello | Bardiani-CSF 7 Saber | s.t. |
| 155 | Sean Flynn | Team Picnic PostNL | s.t. |
| 156 | Simone Consonni | Lidl-Trek | s.t. |
| 157 | Max Walscheid | Lidl-Trek | s.t. |
| 158 | Luca Mozzato | Tudor Pro Cycling Team | s.t. |
| 159 | Elmar Reinders | Unibet Rose Rockets | s.t. |
| 160 | Tim Naberman | Team Picnic PostNL | s.t. |
| 161 | Arjen Livyns | XDS Astana Team | s.t. |
| 162 | Fabian Lienhard | Tudor Pro Cycling Team | s.t. |
| 163 | Giovanni Lonardi | Team Polti-VisitMalta | s.t. |
| 164 | Tim Torn Teutenberg | Lidl-Trek | s.t. |
| 165 | Erlend Blikra | Uno-X Mobility | s.t. |
| 166 | Jardi Van Der Lee | EF Education-EasyPost | s.t. |
| 167 | Edward Planckaert | Alpecin-Premier Tech | s.t. |
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 |
| 11 | Markel Beloki | EF Education-EasyPost | 5:31 |
| 12 | Jan Hirt | NSN Cycling Team | 5:40 |
| 13 | Igor Arrieta | UAE Team Emirates-XRG | 5:54 |
| 14 | Derek Gee-West | Lidl-Trek | 6:10 |
| 15 | Egan Bernal | Netcompany INEOS Cycling Team | 6:18 |
| 16 | Davide Piganzoli | Team Visma | Lease a Bike | 6:22 |
| 17 | Damiano Caruso | Bahrain Victorious | 6:32 |
| 18 | Chris Harper | Pinarello-Q36.5 Pro Cycling Team | 6:41 |
| 19 | Jan Christen | UAE Team Emirates-XRG | 6:59 |
| 20 | Lennert Van Eetvelt | Lotto-Intermarché | 7:12 |
| 21 | Johannes Kulset | Uno-X Mobility | 7:14 |
| 22 | Alexander Cepeda | EF Education-EasyPost | 7:48 |
| 23 | David de la Cruz | Pinarello-Q36.5 Pro Cycling Team | 8:11 |
| 24 | Sepp Kuss | Team Visma | Lease a Bike | 8:19 |
| 25 | Gregor Mühlberger | Decathlon CMA CGM Team | 8:29 |
| 26 | Martin López | XDS Astana Team | 9:04 |
| 27 | Enric Mas | Movistar Team | 9:14 |
| 28 | Giulio Ciccone | Lidl-Trek | 9:42 |
| 29 | Aleksandr Vlasov | Red Bull-BORA-hansgrohe | 11:34 |
| 30 | Josh Kench | Groupama-FDJ United | 12:11 |
| 31 | Koen Bouwman | Team Jayco-AlUla | 14:19 |
| 32 | Giovanni Aleotti | Red Bull-BORA-hansgrohe | 15:07 |
| 33 | Wout Poels | Unibet Rose Rockets | 15:22 |
| 34 | Ludovico Crescioli | Team Polti-VisitMalta | 15:29 |
| 35 | Juan Pedro Lopez | Movistar Team | 15:53 |
| 36 | Gianmarco Garofoli | Soudal Quick-Step | 18:04 |
| 37 | Javier Romo | Movistar Team | 19:15 |
| 38 | Filippo Zana | Soudal Quick-Step | 20:27 |
| 39 | Andreas Leknessund | Uno-X Mobility | 20:32 |
| 40 | Jhonatan Narvaez | UAE Team Emirates-XRG | 21:12 |
| 41 | Einer Rubio | Movistar Team | 24:44 |
| 42 | Lorenzo Milesi | Movistar Team | 24:47 |
| 43 | Callum Scotson | Decathlon CMA CGM Team | 28:32 |
| 44 | Martin Tjøtta | Uno-X Mobility | 29:49 |
| 45 | Nickolas Zukowsky | Pinarello-Q36.5 Pro Cycling Team | 30:29 |
| 46 | Thomas Silva | XDS Astana Team | 31:23 |
| 47 | Alan Hatherly | Team Jayco-AlUla | 31:26 |
| 48 | Diego Ulissi | XDS Astana Team | 32:29 |
| 49 | Embret Svestad-Bårdseng | Netcompany INEOS Cycling Team | 33:15 |
| 50 | Magnus Sheffield | Netcompany INEOS Cycling Team | 33:37 |
| 51 | William Barta | Tudor Pro Cycling Team | 34:27 |
| 52 | Bart Lemmen | Team Visma | Lease a Bike | 35:21 |
| 53 | Florian Stork | Tudor Pro Cycling Team | 35:22 |
| 54 | Victor Campenaerts | Team Visma | Lease a Bike | 36:25 |
| 55 | Brieuc Rolland | Groupama-FDJ United | 36:29 |
| 56 | Andrea Raccagni Noviero | Soudal Quick-Step | 37:08 |
| 57 | Manuele Tarozzi | Bardiani-CSF 7 Saber | 37:26 |
| 58 | Simone Gualdi | Lotto-Intermarché | 37:54 |
| 59 | Matteo Sobrero | Lidl-Trek | 37:55 |
| 60 | Thomas Pesenti | Team Polti-VisitMalta | 38:31 |
| 61 | Ben Turner | Netcompany INEOS Cycling Team | 40:19 |
| 62 | Alessandro Tonelli | Team Polti-VisitMalta | 40:36 |
| 63 | Ben Zwiehoff | Red Bull-BORA-hansgrohe | 40:40 |
| 64 | Alessandro Pinarello | NSN Cycling Team | 40:54 |
| 65 | Jack Haig | Netcompany INEOS Cycling Team | 41:02 |
| 66 | Johannes Staune-Mittet | Decathlon CMA CGM Team | 42:04 |
| 67 | Nelson Oliveira | Movistar Team | 42:23 |
| 68 | Mark Donovan | Pinarello-Q36.5 Pro Cycling Team | 44:45 |
| 69 | Nick Schultz | NSN Cycling Team | 45:14 |
| 70 | Edoardo Zambanini | Bahrain Victorious | 45:24 |
| 71 | Michael Valgren | EF Education-EasyPost | 47:15 |
| 72 | Alec Segaert | Bahrain Victorious | 47:58 |
| 73 | Andrea Mifsud | Team Polti-VisitMalta | 48:45 |
| 74 | Lawrence Warbasse | Tudor Pro Cycling Team | 50:30 |
| 75 | Orluis Aular | Movistar Team | 50:37 |
| 76 | Filippo Turconi | Bardiani-CSF 7 Saber | 52:13 |
| 77 | Warren Barguil | Team Picnic PostNL | 52:42 |
| 78 | Corbin Strong | NSN Cycling Team | 52:59 |
| 79 | Vicente Rojas | Bardiani-CSF 7 Saber | 53:12 |
| 80 | Francesco Busatto | Alpecin-Premier Tech | 53:14 |
| 81 | Mikkel Bjerg | UAE Team Emirates-XRG | 53:55 |
| 82 | Gianni Moscon | Red Bull-BORA-hansgrohe | 54:06 |
| 83 | Luca Paletti | Bardiani-CSF 7 Saber | 54:37 |
| 84 | Toon Aerts | Lotto-Intermarché | 55:47 |
| 85 | Tobias Bayer | Alpecin-Premier Tech | 58:03 |
| 86 | Rémy Rochas | Groupama-FDJ United | 59:50 |
| 87 | Christopher Juul-Jensen | Team Jayco-AlUla | 1:00:11 |
| 88 | Fabio Van den Bossche | Soudal Quick-Step | 1:00:19 |
| 89 | Lorenzo Rota | Lotto-Intermarché | 1:00:24 |
| 90 | Filippo Ganna | Netcompany INEOS Cycling Team | 1:00:42 |
| 91 | Paul Magnier | Soudal Quick-Step | 1:01:55 |
| 92 | Gijs Leemreize | Team Picnic PostNL | 1:02:34 |
| 93 | Darren Rafferty | EF Education-EasyPost | 1:03:03 |
| 94 | Mick van Dijke | Red Bull-BORA-hansgrohe | 1:03:25 |
| 95 | Mirco Maestri | Team Polti-VisitMalta | 1:03:51 |
| 96 | Axel Huens | Groupama-FDJ United | 1:04:05 |
| 97 | Nikita Tsvetkov | Bardiani-CSF 7 Saber | 1:04:06 |
| 98 | David González | Pinarello-Q36.5 Pro Cycling Team | 1:04:26 |
| 99 | Jasper Stuyven | Soudal Quick-Step | 1:04:55 |
| 100 | Tobias Lund Andresen | Decathlon CMA CGM Team | 1:04:58 |
| 101 | Filippo Magli | Bardiani-CSF 7 Saber | 1:05:26 |
| 102 | Fredrik Dversnes | Uno-X Mobility | 1:05:45 |
| 103 | Diego Sevilla | Team Polti-VisitMalta | 1:06:21 |
| 104 | Madis Mihkels | EF Education-EasyPost | 1:07:29 |
| 105 | Johan Jacobs | Groupama-FDJ United | 1:07:31 |
| 106 | Robert Stannard | Bahrain Victorious | 1:07:47 |
| 107 | Pascal Ackermann | Team Jayco-AlUla | 1:09:24 |
| 108 | Mathijs Paasschens | Bahrain Victorious | 1:09:57 |
| 109 | Iván García Cortina | Movistar Team | 1:10:10 |
| 110 | Alberto Bettiol | XDS Astana Team | 1:10:15 |
| 111 | Rasmus Søjberg Pedersen | Decathlon CMA CGM Team | 1:10:28 |
| 112 | Mattia Bais | Team Polti-VisitMalta | 1:10:37 |
| 113 | Ethan Vernon | NSN Cycling Team | 1:11:11 |
| 114 | Robert Donaldson | Team Jayco-AlUla | 1:11:25 |
| 115 | Markus Hoelgaard | Uno-X Mobility | 1:11:28 |
| 116 | Connor Swift | Netcompany INEOS Cycling Team | 1:11:35 |
| 117 | Oliver Naesen | Decathlon CMA CGM Team | 1:11:53 |
| 118 | Martin Marcellusi | Bardiani-CSF 7 Saber | 1:12:05 |
| 119 | Remi Cavagna | Groupama-FDJ United | 1:12:14 |
| 120 | James Shaw | EF Education-EasyPost | 1:12:14 |
| 121 | Cyril Barthe | Groupama-FDJ United | 1:12:33 |
| 122 | Niklas Larsen | Unibet Rose Rockets | 1:12:39 |
| 123 | Jonas Rutsch | Lotto-Intermarché | 1:13:42 |
| 124 | Sjoerd Bax | Pinarello-Q36.5 Pro Cycling Team | 1:14:22 |
| 125 | Fran Miholjevic | Bahrain Victorious | 1:14:31 |
| 126 | Chris Hamilton | Team Picnic PostNL | 1:15:00 |
| 127 | Tim Rex | Team Visma | Lease a Bike | 1:15:26 |
| 128 | Timo Kielich | Team Visma | Lease a Bike | 1:15:43 |
| 129 | Jardi Van Der Lee | EF Education-EasyPost | 1:15:46 |
| 130 | Jonas Geens | Alpecin-Premier Tech | 1:17:57 |
| 131 | Davide Ballerini | XDS Astana Team | 1:18:20 |
| 132 | Ayco Bastiaens | Soudal Quick-Step | 1:19:22 |
| 133 | Amanuel Ghebreigzabhier | Lidl-Trek | 1:19:40 |
| 134 | Jensen Plowright | Alpecin-Premier Tech | 1:20:14 |
| 135 | Luca Vergallito | Alpecin-Premier Tech | 1:21:05 |
| 136 | Paul Penhoët | Groupama-FDJ United | 1:22:11 |
| 137 | Edward Planckaert | Alpecin-Premier Tech | 1:22:27 |
| 138 | Jonathan Milan | Lidl-Trek | 1:23:29 |
| 139 | Lukas Kubis | Unibet Rose Rockets | 1:23:49 |
| 140 | Tim Torn Teutenberg | Lidl-Trek | 1:24:57 |
| 141 | António Morgado | UAE Team Emirates-XRG | 1:25:30 |
| 142 | Sakarias Koller Løland | Uno-X Mobility | 1:25:38 |
| 143 | Dion Smith | NSN Cycling Team | 1:27:20 |
| 144 | Dries van Gestel | Soudal Quick-Step | 1:28:19 |
| 145 | Casper van Uden | Team Picnic PostNL | 1:28:31 |
| 146 | Nico Denz | Red Bull-BORA-hansgrohe | 1:29:12 |
| 147 | Tord Gudmestad | Decathlon CMA CGM Team | 1:29:14 |
| 148 | Tim Naberman | Team Picnic PostNL | 1:30:47 |
| 149 | Matyas Kopecky | Unibet Rose Rockets | 1:32:06 |
| 150 | Tomas Kopecky | Unibet Rose Rockets | 1:32:46 |
| 151 | Ryan Mullen | NSN Cycling Team | 1:33:06 |
| 152 | Enrico Zanoncello | Bardiani-CSF 7 Saber | 1:33:27 |
| 153 | Giovanni Lonardi | Team Polti-VisitMalta | 1:33:48 |
| 154 | Hartthijs de Vries | Unibet Rose Rockets | 1:36:48 |
| 155 | Fabian Lienhard | Tudor Pro Cycling Team | 1:37:12 |
| 156 | Dylan Groenewegen | Unibet Rose Rockets | 1:37:17 |
| 157 | Simone Consonni | Lidl-Trek | 1:37:53 |
| 158 | Luca Mozzato | Tudor Pro Cycling Team | 1:38:36 |
| 159 | Sean Flynn | Team Picnic PostNL | 1:39:13 |
| 160 | Elmar Reinders | Unibet Rose Rockets | 1:39:46 |
| 161 | Robin Froidevaux | Tudor Pro Cycling Team | 1:40:01 |
| 162 | Max Walscheid | Lidl-Trek | 1:40:45 |
| 163 | Johan Price-Pejtersen | Alpecin-Premier Tech | 1:40:51 |
| 164 | Arjen Livyns | XDS Astana Team | 1:43:55 |
| 165 | Erlend Blikra | Uno-X Mobility | 1:44:43 |
| 166 | Matteo Malucelli | XDS Astana Team | 1:45:09 |
| 167 | Frank van den Broek | Team Picnic PostNL | 1:53:30 |
Stage 8 map & profile:

Stage 8 map

Stage 8 profile
Stage 8 photos by Fotoreporter Sirotti:

Starting ceremonies: Team XDS Astana is presented.

A small group tries to get away.

The peloton races through an Italian town.

Jhoantan Narvaez wins stage eight. Alone.

Second-place Andreas Leknessund came in 32 seconds later.

Martin Tjøtta was third.

Thomas Silva was fourth in the stage.

Markel Beloki was tenth across the line.

Stage winner Jhonatan Narvaez

Afonso Eulalio will start stage nine in pink.
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:
Thursday, May 14: Stage 6, Paestum - Napoli, 161 km
Likely sprint after an undulating middle section and a finishing circuit with several short climbs, the last very close to the finish.

Stage 6 map

Stage 6 profile
Friday, May 15: Stage 7, Formia - Blockhaus, 246 km
First summit finish. Longest stage of the Giro at 246 km. Coastal run through Sperlonga and Gaeta, then into Abruzzo. Blockhaus climbed from Roccamorice, the hardest side: final 10 km consistently around, or above, 10%.

Stage 7 map

Stage 7 profile
Saturday, May 16: Stage 8, Chieti - Fermo, 159 km
Rolling “Muri-style” stage similar to Tirreno Adriatico. Several steep walls, including Capodarco, site of the famous U23 race, then another wall to reach the town centre.

Stage 8 map

Stage 8 profile
Sunday, May 17: Stage 9: Cervia - Corno alle Scale, 184 km
Flat start then increasingly rolling terrain into the Tuscan-Emilian Apennines, ending uphill at Corno alle Scale (Rifugio Cavone). Final climb alternates steep ramps with easier stretches.

Stage 9 map

Stage 9 profile
Tuesday, May 19: Stage 10, Viareggio – Massa 40.2 km individual time trial
Completely flat individual time trial, expected to be extremely fast (estimated 56–57 km/h). The first 10 km feature multiple curves around Viareggio and Torre del Lago Puccini; then a long, straight coastal section where top specialists may hit 60 km/h.

Stage 10 map

Stage 10 profile
Wednesday, May 20: Stage 11, Porcari (Paper District) – Chiavari, 178 km
Rolling stage with a demanding second half through the Cinque Terre (Levanto). Steep final ramp just before the line.

Stage 11 map

Stage 11 profile
Thursday, May 21: Stage 12, Imperia - Novi Ligure, 177 km
Early climbs (Colle Giovo / Bric Berton) before entering the Po Valley. Likely sprint finish.

Stage 12 map

Stage 12 profile
Friday, May 22: Stage 13, Alessandria - Verbania, 186 km
Flat stage with tricky final climbs: Bieno (5%) and Ungiasca (7% with long double-digit stretches). Finish by the lake.

Stage 13 map

Stage 13 profile
Saturday, May 23: Stage 14, Aosta – Pila, 133 km
Brutal stage with over 4,000 m of climbing. Riders traverse Aosta’s “balconies” and cover Saint-Barthélémy, Douas, Lin Noir, Verrogne, and Pila, climbed for the first time from the Gressan side (normally tackled downhill).

Stage 14 map

Stage 14 profile
Sunday, May 24: Stage 15, Voghera – Milano, 135 km
Completely flat stage featuring a final city circuit. Bunch sprint guaranteed.

Stage 15 map

Stage 15 profile
Tuesday, May 26: Stage 16, Bellinzona - Cari, 113 km
Very short but high-altitude stage. Early circuit with two demanding climbs (Torre, Leontica) before a straight uphill finish in Carì.

Stage 16 map

Stage 16 profile
Wednesday, May 27: Stage 17, Cassana d'Adda - Andalo, 200 km
Initially flat, then a sequence of short climbs to the finish. Short, partially closed loop near the end.

Stage 17 map

Stage 17 profile
Thursday, May 28: Stage 18, Fai della Paganella - Pieve di Soligo, 167 km
Gently undulating stage with continuous rollers. Neutral descent to km 0, then relentless ups and downs. At 9 km to go, the famous Muro di Ca’ del Poggio may be the key factor between a sprint and a selective finish.

Stage 18 map

Stage 18 profile
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)