
Giro d'Italia results for every stage of every edition | 2024 Giro | 2026 Giro | Start list, teams presentation photos, stage list, race description
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 | Stage 21

Map of the 2025 Giro d'Italia. 3,444.3 kilometers long, with an average stage length of 164 km. The race will begin with three stages in Albania.
Sunday, June 1: 21st & Final Stage, Rome (Roma) - Rome, 143 km
Stage 21 map & profile | Stage 21 photos

Wearing a pink-accented race kit because his teamate Simon Yates is the virtual winner of this year's Giro, Olav Kooij wins the stage. Photo: La Presse
Plato's dialogue Crito is available both in audiobook and Kindle eBook versions. To get your copy, just click on the Amazon link on the right.
The stage: The final stage is split into two parts. The first runs from Rome–EUR to the coast and Ostia, then returns to the start zone. Riders then enter the final circuit: 8 laps of a 9.5 km course entirely within central Rome, using wide city roads (with some medians). The profile alternates short undulations with long straights and occasionally technical corners. The surface is mostly asphalt, with short cobbled sections (so-called sanpietrini).
Final kilometers: Only slight changes of direction. The final straight is 350 m on 8-metre-wide asphalt. Midway through the last kilometer, the road pitches up at 5%.
The official start is scheduled for 3:25 PM, local time (6:25 AM Pacific Time).
The start of the final stage of the 108th edition of the Giro d’Italia takes place at the Baths of Caracalla. As part of the neutralized, ceremonial parade, the riders will enter Vatican City via Via Paolo VI, through the Petriano Gate, and ride about 3 kilometers inside the papal city. This initiative comes ahead of the Jubilee of Sport, scheduled for Saturday, 14 June and Sunday, 15 June. It was a wish of Pope Francis, and will offer Pope Leo XIV the opportunity to greet the riders as they pass by, around 3:30 p.m.

What a setting for the final stage of the Giro! RCS photo
We now have had 12 different winners in the last 12 editions of the Giro. Simon Yates succeeded Nairo Quintana (2014), Alberto Contador (2015), Vincenzo Nibali (2016), Tom Dumoulin (2017), Chris Froome (2018), Richard Carapaz (2019), Tao Geoghegan Hart (2020), Egan Bernal (2021), Jai Hindley (2022), Primož Roglič (2023), and Tadej Pogačar (2024).
It’s the first time in the race’s history that such a streak has occurred. Previously, ten different winners followed one another between 1983 and 1992.
The race: Here's the report from GC winner Simon Yates' Team Visma | Lease a Bike:
The final day of the Giro d’Italia was entirely marked by Team Visma | Lease a Bike. In the streets of Rome, Olav Kooij claimed his second stage win after an impressive sprint. Not long after, Simon Yates crossed the finish line as the overall winner. The 32-year-old Brit handed Team Visma | Lease a Bike its second-ever overall victory in the Giro d’Italia.
“This is one of the most important moments of my career,” said an emotional Yates afterward. The Brit joined Team Visma | Lease a Bike at the beginning of this season, with the Giro as one of his main goals. “It’s the culmination of many years of hard work. I’ve had some victories in my life, but nothing comes close to this. I want to thank my teammates and staff members for their unconditional support over the past few weeks. When I stood on the podium, surrounded by my teammates, it finally started to sink in that I had won this Giro. It feels incredibly special. Right now, I feel overwhelming pride.”

The peloton rides by the Victor Emmanuel II Monument, sometimes called the "Wedding Cake" and the "Typewriter" for its over-the-top architectural style.
As tradition holds, the final stage in the Italian capital allowed room for celebrations. The race only truly came to life in the second half. A small breakaway managed to stay ahead of the peloton for a while, but the sprinters were determined to set up a mass sprint. Kooij could count on an excellent lead-out from teammates Edoardo Affini and Wout van Aert. The two delivered their sprinter to the final few hundred meters with an impressive effort. Kooij then convincingly secured his second stage win of this Giro - a crowning moment for a successful race by Team Visma | Lease a Bike.
“This Giro couldn’t have ended more beautifully,” said Kooij. “Claiming the overall win with Simon was already fantastic, but a third stage victory for the team was the icing on the cake. Today, we really wanted to go all out one more time. Thanks to Edoardo and Wout, I was perfectly positioned to start the sprint, and I was able to finish it off. Winning here in Rome is amazing. This is a moment we’ll remember forever.”

Since they were in the neighborhood, the Giro riders stopped by to see the pope before continuing with the race.
Sports director Marc Reef looks back on three unforgettable weeks. “I’m extremely proud of Simon and the entire team. A lot of people have worked with great passion toward this goal, both on and off the bike. Of course, winning a Grand Tour remains a very special feeling. It’s a unique achievement in cycling, so we’re over the moon with this second overall victory for Team Visma | Lease a Bike in the Giro.”
“We executed everything perfectly over the past few weeks,” he added. “The stage wins by Wout and Olav created great momentum within the team. Also Simon’s strong position in the general classification kept everyone motivated. He was brilliantly supported by his teammates through all 21 stages, and in the final weekend, he finished the job smartly. Simon always excels in the high mountains, and he proved that again. Everything fell into place. A third stage win made the celebration complete. Olav had to wait a long time for another sprint opportunity, but today he once again showed his great class. This was a fantastic ending to a fantastic Giro.”
This victory marks the eighth Grand Tour win for Team Visma | Lease a Bike. After two overall wins in the Tour de France and four in the Vuelta a España, the Dutch WorldTour team now adds a second Giro d’Italia overall victory to its list of honours.
Complete results:
143 kilometers raced at an average speed of 44.614 km/hr
| 1 | Olav Kooij | Team Visma | Lease a Bike | 3hr 12min 19sec |
| 2 | Kaden Groves | Alpecin-Deceuninck | s.t. |
| 3 | Matteo Moschetti | Q36.5 Pro Cycling Team | s.t. |
| 4 | Mads Pedersen | Lidl-Trek | s.t. |
| 5 | Luke Lamperti | Soudal Quick-Step | s.t. |
| 6 | Max Kanter | XDS Astana Team | s.t. |
| 7 | Filippo Baroncini | UAE Team Emirates-XRG | s.t. |
| 8 | Orluis Aular | Movistar Team | s.t. |
| 9 | Enrico Zanoncello | VF Group-Bardiani CSF-Faizanè | s.t. |
| 10 | Giovanni Lonardi | Team Polti-VisitMalta | s.t. |
| 11 | Luca Mozzato | Arkea-B&B Hotels | s.t. |
| 12 | Sam Bennett | Decathlon AG2R La Mondiale | s.t. |
| 13 | Gerben Thijssen | Intermarché-Wanty | s.t. |
| 14 | Niklas Märkl | Team Picnic PostNL | s.t. |
| 15 | Casper van Uden | Team Picnic PostNL | s.t. |
| 16 | Filippo Magli | VF Group-Bardiani CSF-Faizanè | s.t. |
| 17 | Kim Heiduk | INEOS Grenadiers | s.t. |
| 18 | Clément Davy | Groupama-FDJ | s.t. |
| 19 | Davide De Pretto | Team Jayco-AlUla | s.t. |
| 20 | Corbin Strong | Israel-Premier Tech | s.t. |
| 21 | Owain Doull | EF Education-EasyPost | s.t. |
| 22 | Filippo Fiorelli | VF Group-Bardiani CSF-Faizanè | s.t. |
| 23 | Maikel Zijlaard | Tudor Pro Cycling Team | s.t. |
| 24 | Stefano Oldani | Cofidis | s.t. |
| 25 | Giosue Epis | Arkea-B&B Hotels | s.t. |
| 26 | Wout van Aert | Team Visma | Lease a Bike | s.t. |
| 27 | Brandon McNulty | UAE Team Emirates-XRG | s.t. |
| 28 | Jon Barrenetxea | Movistar Team | s.t. |
| 29 | Edoardo Zambanini | Bahrain Victorious | s.t. |
| 30 | Mirco Maestri | Team Polti-VisitMalta | s.t. |
| 31 | Gianmarco Garofoli | Soudal Quick-Step | s.t. |
| 32 | Einer Rubio | Movistar Team | s.t. |
| 33 | Darren Rafferty | EF Education-EasyPost | s.t. |
| 34 | Richard Carapaz | EF Education-EasyPost | s.t. |
| 35 | Isaac del Toro | UAE Team Emirates-XRG | s.t. |
| 36 | Francisco Muñoz | Team Polti-VisitMalta | s.t. |
| 37 | Embret Svestad-Bårdseng | Arkea-B&B Hotels | s.t. |
| 38 | Felix Engelhardt | Team Jayco-AlUla | s.t. |
| 39 | Diego Ulissi | XDS Astana Team | s.t. |
| 40 | Davide Piganzoli | Team Polti-VisitMalta | s.t. |
| 41 | Lorenzo Milesi | Movistar Team | s.t. |
| 42 | Sergio Samitier | Cofidis | s.t. |
| 43 | Ethan Hayter | Soudal Quick-Step | s.t. |
| 44 | Simone Petilli | Intermarché-Wanty | s.t. |
| 45 | Lawrence Warbasse | Tudor Pro Cycling Team | s.t. |
| 46 | Max Poole | Team Picnic PostNL | s.t. |
| 47 | Emils Liepins | Q36.5 Pro Cycling Team | s.t. |
| 48 | Andrea Vendrame | Decathlon AG2R La Mondiale | s.t. |
| 49 | Yannis Voisard | Tudor Pro Cycling Team | s.t. |
| 50 | Lucas Hamilton | INEOS Grenadiers | s.t. |
| 51 | Jonathan Lastra | Cofidis | s.t. |
| 52 | Derek Gee | Israel-Premier Tech | s.t. |
| 53 | Paul Double | Team Jayco-AlUla | s.t. |
| 54 | Stan Dewulf | Decathlon AG2R La Mondiale | s.t. |
| 55 | Georg Steinhauser | EF Education-EasyPost | s.t. |
| 56 | Fausto Masnada | XDS Astana Team | s.t. |
| 57 | Francesco Busatto | Intermarché-Wanty | s.t. |
| 58 | Gianni Moscon | Red Bull-BORA-hansgrohe | s.t. |
| 59 | Kasper Asgreen | EF Education-EasyPost | s.t. |
| 60 | Florian Stork | Tudor Pro Cycling Team | s.t. |
| 61 | Jacopo Mosca | Lidl-Trek | s.t. |
| 62 | Damiano Caruso | Bahrain Victorious | s.t. |
| 63 | Kevin Geniets | Groupama-FDJ | s.t. |
| 64 | Egan Bernal | INEOS Grenadiers | s.t. |
| 65 | Louis Meintjes | Intermarché-Wanty | s.t. |
| 66 | Giulio Pellizzari | Red Bull-BORA-hansgrohe | s.t. |
| 67 | Alessandro Tonelli | Team Polti-VisitMalta | s.t. |
| 68 | Davide Formolo | Movistar Team | s.t. |
| 69 | Rick Pluimers | Tudor Pro Cycling Team | s.t. |
| 70 | Milan Vader | Q36.5 Pro Cycling Team | s.t. |
| 71 | Marco Frigo | Israel-Premier Tech | s.t. |
| 72 | Filippo Zana | Team Jayco-AlUla | s.t. |
| 73 | Michael Storer | Tudor Pro Cycling Team | s.t. |
| 74 | Simon Yates | Team Visma | Lease a Bike | s.t. |
| 75 | Lorenzo Germani | Groupama-FDJ | s.t. |
| 76 | Rafal Majka | UAE Team Emirates-XRG | s.t. |
| 77 | Dorian Godon | Decathlon AG2R La Mondiale | s.t. |
| 78 | Quentin Pacher | Groupama-FDJ | s.t. |
| 79 | Antonio Tiberi | Bahrain Victorious | s.t. |
| 80 | Christian Scaroni | XDS Astana Team | s.t. |
| 81 | Mattia Cattaneo | Soudal Quick-Step | s.t. |
| 82 | Giovanni Aleotti | Red Bull-BORA-hansgrohe | s.t. |
| 83 | Mattia Bais | Team Polti-VisitMalta | s.t. |
| 84 | Nairo Quintana | Movistar Team | s.t. |
| 85 | James Knox | Soudal Quick-Step | s.t. |
| 86 | Mark Donovan | Q36.5 Pro Cycling Team | s.t. |
| 87 | Igor Arrieta | UAE Team Emirates-XRG | s.t. |
| 88 | Adam Yates | UAE Team Emirates-XRG | s.t. |
| 89 | Daniel Martinez | Red Bull-BORA-hansgrohe | s.t. |
| 90 | Edward Planckaert | Alpecin-Deceuninck | s.t. |
| 91 | Lorenzo Fortunato | XDS Astana Team | s.t. |
| 92 | Alex Edmondson | Team Picnic PostNL | @ 25sec |
| 93 | Nicola Conci | XDS Astana Team | s.t. |
| 94 | Simon Guglielmi | Arkea-B&B Hotels | s.t. |
| 95 | Tord Gudmestad | Decathlon AG2R La Mondiale | s.t. |
| 96 | Martin Tjøtta | Arkea-B&B Hotels | 0:35 |
| 97 | Sylvain Moniquet | Cofidis | s.t. |
| 98 | Edoardo Affini | Team Visma | Lease a Bike | s.t. |
| 99 | James Shaw | EF Education-EasyPost | s.t. |
| 100 | Gijs Van Hoecke | Intermarché-Wanty | s.t. |
| 101 | Taco van der Hoorn | Intermarché-Wanty | s.t. |
| 102 | Ben Turner | INEOS Grenadiers | s.t. |
| 103 | Nicolas Prodhomme | Decathlon AG2R La Mondiale | 0:44 |
| 104 | Damien Howson | Q36.5 Pro Cycling Team | 0:49 |
| 105 | Mikkel Honore | EF Education-EasyPost | s.t. |
| 106 | Patrick Konrad | Lidl-Trek | s.t. |
| 107 | Mathias Vacek | Lidl-Trek | s.t. |
| 108 | Jakob Fuglsang | Israel-Premier Tech | s.t. |
| 109 | Carlos Verona | Lidl-Trek | s.t. |
| 110 | Jan Maas | Cofidis | s.t. |
| 111 | Nicolas Debeaumarché | Cofidis | s.t. |
| 112 | Wilco Kelderman | Team Visma | Lease a Bike | s.t. |
| 113 | Steven Kruijswijk | Team Visma | Lease a Bike | s.t. |
| 114 | Dylan van Baarle | Team Visma | Lease a Bike | s.t. |
| 115 | Bart Lemmen | Team Visma | Lease a Bike | s.t. |
| 116 | Luca Covili | VF Group-Bardiani CSF-Faizanè | s.t. |
| 117 | Manuele Tarozzi | VF Group-Bardiani CSF-Faizanè | s.t. |
| 118 | Chris Harper | Team Jayco-AlUla | s.t. |
| 119 | Albert Torres | Movistar Team | s.t. |
| 120 | Romain Bardet | Team Picnic PostNL | s.t. |
| 121 | Pello Bilbao | Bahrain Victorious | s.t. |
| 122 | Davide Bais | Team Polti-VisitMalta | s.t. |
| 123 | Wout Poels | XDS Astana Team | s.t. |
| 124 | Fran Miholjevic | Bahrain Victorious | 1:00 |
| 125 | Daan Hoole | Lidl-Trek | s.t. |
| 126 | Tom Pidcock | Q36.5 Pro Cycling Team | 1:08 |
| 127 | Xabier Azparren | Q36.5 Pro Cycling Team | s.t. |
| 128 | Rémy Rochas | Groupama-FDJ | 1:12 |
| 129 | Nico Denz | Red Bull-BORA-hansgrohe | s.t. |
| 130 | Dries De Bondt | Decathlon AG2R La Mondiale | s.t. |
| 131 | Hugo Houle | Israel-Premier Tech | 1:20 |
| 132 | Michael Hepburn | Team Jayco-AlUla | 1:41 |
| 133 | Gijs Leemreize | Team Picnic PostNL | s.t. |
| 134 | Anton Kuzmin | XDS Astana Team | s.t. |
| 135 | Nick Schultz | Israel-Premier Tech | s.t. |
| 136 | Chris Hamilton | Team Picnic PostNL | s.t. |
| 137 | Jan Tratnik | Red Bull-BORA-hansgrohe | s.t. |
| 138 | Jefferson Cepeda | Movistar Team | s.t. |
| 139 | Alexander Cepeda | EF Education-EasyPost | s.t. |
| 140 | Alexander Krieger | Tudor Pro Cycling Team | 1:53 |
| 141 | Fabio Van den Bossche | Alpecin-Deceuninck | 2:06 |
| 142 | Jensen Plowright | Alpecin-Deceuninck | s.t. |
| 143 | Laurens Huys | Arkea-B&B Hotels | 2:36 |
| 144 | Anthony Perez | Cofidis | 2:52 |
| 145 | Jonathan Castroviejo | INEOS Grenadiers | s.t. |
| 146 | Thymen Arensman | INEOS Grenadiers | s.t. |
| 147 | Simon Clarke | Israel-Premier Tech | s.t. |
| 148 | Kevin Colleoni | Intermarché-Wanty | 3:00 |
| 149 | David Gaudu | Groupama-FDJ | 3:23 |
| 150 | Sven Erik Bystrøm | Groupama-FDJ | @ 0sec |
| 151 | Matevz Govekar | Bahrain Victorious | @ 0sec |
| 152 | Quinten Hermans | Alpecin-Deceuninck | 3:30 |
| 153 | Timo Kielich | Alpecin-Deceuninck | 4:37 |
| 154 | Jimmy Janssens | Alpecin-Deceuninck | s.t. |
| 155 | Andrea Pietrobon | Team Polti-VisitMalta | s.t. |
| 156 | Enzo Paleni | Groupama-FDJ | 4:46 |
| 157 | Josef Cerný | Soudal Quick-Step | s.t. |
| 158 | Martin Marcellusi | VF Group-Bardiani CSF-Faizanè | 5:04 |
| 159 | Alessandro Verre | Arkea-B&B Hotels | s.t. |
Final GC after stage 21:
Click on the classification links for complete results in that category.
3,443.3 kilometers raced at an average speed of 41.728 km/hr
| 1 | Simon Yates | Team Visma | Lease a Bike | 82hr 31min 1sec |
| 2 | Isaac del Toro | UAE Team Emirates-XRG | @ 3min 56sec |
| 3 | Richard Carapaz | EF Education-EasyPost | 4:43 |
| 4 | Derek Gee | Israel-Premier Tech | 6:23 |
| 5 | Damiano Caruso | Bahrain Victorious | 7:32 |
| 6 | Giulio Pellizzari | Red Bull-BORA-hansgrohe | 9:28 |
| 7 | Egan Bernal | INEOS Grenadiers | 12:42 |
| 8 | Einer Rubio | Movistar Team | 13:05 |
| 9 | Brandon McNulty | UAE Team Emirates-XRG | 13:36 |
| 10 | Michael Storer | Tudor Pro Cycling Team | 14:27 |
| 11 | Max Poole | Team Picnic PostNL | 18:15 |
| 12 | Adam Yates | UAE Team Emirates-XRG | 21:43 |
| 13 | Rafal Majka | UAE Team Emirates-XRG | 23:46 |
| 14 | Davide Piganzoli | Team Polti-VisitMalta | 27:53 |
| 15 | Nicolas Prodhomme | Decathlon AG2R La Mondiale | 36:09 |
| 16 | Tom Pidcock | Q36.5 Pro Cycling Team | 44:41 |
| 17 | Antonio Tiberi | Bahrain Victorious | 46:04 |
| 18 | Louis Meintjes | Intermarché-Wanty | 52:03 |
| 19 | James Knox | Soudal Quick-Step | 56:35 |
| 20 | Florian Stork | Tudor Pro Cycling Team | 58:53 |
| 21 | Diego Ulissi | XDS Astana Team | 1:05:07 |
| 22 | Embret Svestad-Bårdseng | Arkea-B&B Hotels | 1:06:40 |
| 23 | Chris Harper | Team Jayco-AlUla | 1:13:35 |
| 24 | Lorenzo Fortunato | XDS Astana Team | 1:22:09 |
| 25 | Nairo Quintana | Movistar Team | 1:23:09 |
| 26 | Romain Bardet | Team Picnic PostNL | 1:24:04 |
| 27 | Edoardo Zambanini | Bahrain Victorious | 1:25:59 |
| 28 | Marco Frigo | Israel-Premier Tech | 1:32:20 |
| 29 | Thymen Arensman | INEOS Grenadiers | 1:37:46 |
| 30 | Pello Bilbao | Bahrain Victorious | 1:52:02 |
| 31 | Gianmarco Garofoli | Soudal Quick-Step | 1:53:53 |
| 32 | Yannis Voisard | Tudor Pro Cycling Team | 1:56:21 |
| 33 | Kevin Geniets | Groupama-FDJ | 1:56:33 |
| 34 | Jefferson Cepeda | Movistar Team | 1:57:52 |
| 35 | Andrea Vendrame | Decathlon AG2R La Mondiale | 1:59:53 |
| 36 | Igor Arrieta | UAE Team Emirates-XRG | 2:00:15 |
| 37 | Wilco Kelderman | Team Visma | Lease a Bike | 2:01:00 |
| 38 | Steven Kruijswijk | Team Visma | Lease a Bike | 2:05:13 |
| 39 | Rémy Rochas | Groupama-FDJ | 2:11:04 |
| 40 | Christian Scaroni | XDS Astana Team | 2:11:13 |
| 41 | Fausto Masnada | XDS Astana Team | 2:12:40 |
| 42 | Bart Lemmen | Team Visma | Lease a Bike | 2:20:47 |
| 43 | Gijs Leemreize | Team Picnic PostNL | 2:21:52 |
| 44 | Mattia Cattaneo | Soudal Quick-Step | 2:23:20 |
| 45 | Davide Formolo | Movistar Team | 2:23:27 |
| 46 | Damien Howson | Q36.5 Pro Cycling Team | 2:23:30 |
| 47 | Chris Hamilton | Team Picnic PostNL | 2:23:31 |
| 48 | Alessandro Tonelli | Team Polti-VisitMalta | 2:23:48 |
| 49 | Martin Tjøtta | Arkea-B&B Hotels | 2:26:05 |
| 50 | Wout Poels | XDS Astana Team | 2:26:25 |
| 51 | Alexander Cepeda | EF Education-EasyPost | 2:27:01 |
| 52 | Sergio Samitier | Cofidis | 2:28:09 |
| 53 | Daniel Martinez | Red Bull-BORA-hansgrohe | 2:29:40 |
| 54 | Carlos Verona | Lidl-Trek | 2:31:09 |
| 55 | Mark Donovan | Q36.5 Pro Cycling Team | 2:37:39 |
| 56 | Nicola Conci | XDS Astana Team | 2:40:14 |
| 57 | Mathias Vacek | Lidl-Trek | 2:42:59 |
| 58 | Filippo Zana | Team Jayco-AlUla | 2:43:24 |
| 59 | Giovanni Aleotti | Red Bull-BORA-hansgrohe | 2:44:16 |
| 60 | Simone Petilli | Intermarché-Wanty | 2:46:21 |
| 61 | Jonathan Castroviejo | INEOS Grenadiers | 2:47:31 |
| 62 | Hugo Houle | Israel-Premier Tech | 2:53:29 |
| 63 | Lorenzo Germani | Groupama-FDJ | 2:54:25 |
| 64 | Quentin Pacher | Groupama-FDJ | 2:59:12 |
| 65 | Jonathan Lastra | Cofidis | 3:04:36 |
| 66 | David Gaudu | Groupama-FDJ | 3:06:33 |
| 67 | Stefano Oldani | Cofidis | 3:07:43 |
| 68 | Lawrence Warbasse | Tudor Pro Cycling Team | 3:10:00 |
| 69 | Mattia Bais | Team Polti-VisitMalta | 3:11:07 |
| 70 | Luca Covili | VF Group-Bardiani CSF-Faizanè | 3:11:24 |
| 71 | Sylvain Moniquet | Cofidis | 3:15:48 |
| 72 | Wout van Aert | Team Visma | Lease a Bike | 3:16:27 |
| 73 | Patrick Konrad | Lidl-Trek | 3:17:41 |
| 74 | Georg Steinhauser | EF Education-EasyPost | 3:22:54 |
| 75 | Martin Marcellusi | VF Group-Bardiani CSF-Faizanè | 3:23:11 |
| 76 | James Shaw | EF Education-EasyPost | 3:26:18 |
| 77 | Davide De Pretto | Team Jayco-AlUla | 3:28:54 |
| 78 | Filippo Baroncini | UAE Team Emirates-XRG | 3:30:26 |
| 79 | Mikkel Honore | EF Education-EasyPost | 3:34:22 |
| 80 | Milan Vader | Q36.5 Pro Cycling Team | 3:34:38 |
| 81 | Jakob Fuglsang | Israel-Premier Tech | 3:36:09 |
| 82 | Felix Engelhardt | Team Jayco-AlUla | 3:37:17 |
| 83 | Jan Tratnik | Red Bull-BORA-hansgrohe | 3:39:12 |
| 84 | Dorian Godon | Decathlon AG2R La Mondiale | 3:40:14 |
| 85 | Quinten Hermans | Alpecin-Deceuninck | 3:43:42 |
| 86 | Timo Kielich | Alpecin-Deceuninck | 3:49:45 |
| 87 | Darren Rafferty | EF Education-EasyPost | 3:51:51 |
| 88 | Lorenzo Milesi | Movistar Team | 3:54:04 |
| 89 | Filippo Fiorelli | VF Group-Bardiani CSF-Faizanè | 4:00:39 |
| 90 | Mads Pedersen | Lidl-Trek | 4:00:39 |
| 91 | Manuele Tarozzi | VF Group-Bardiani CSF-Faizanè | 4:01:33 |
| 92 | Jon Barrenetxea | Movistar Team | 4:02:34 |
| 93 | Mirco Maestri | Team Polti-VisitMalta | 4:02:46 |
| 94 | Simon Guglielmi | Arkea-B&B Hotels | 4:03:10 |
| 95 | Dylan van Baarle | Team Visma | Lease a Bike | 4:07:14 |
| 96 | Corbin Strong | Israel-Premier Tech | 4:07:26 |
| 97 | Davide Bais | Team Polti-VisitMalta | 4:16:09 |
| 98 | Paul Double | Team Jayco-AlUla | 4:16:30 |
| 99 | Francesco Busatto | Intermarché-Wanty | 4:17:40 |
| 100 | Fabio Van den Bossche | Alpecin-Deceuninck | 4:18:23 |
| 101 | Orluis Aular | Movistar Team | 4:22:20 |
| 102 | Edward Planckaert | Alpecin-Deceuninck | 4:22:44 |
| 103 | Lucas Hamilton | INEOS Grenadiers | 4:24:28 |
| 104 | Alessandro Verre | Arkea-B&B Hotels | 4:26:38 |
| 105 | Rick Pluimers | Tudor Pro Cycling Team | 4:30:38 |
| 106 | Nick Schultz | Israel-Premier Tech | 4:31:19 |
| 107 | Kaden Groves | Alpecin-Deceuninck | 4:31:34 |
| 108 | Kevin Colleoni | Intermarché-Wanty | 4:33:00 |
| 109 | Laurens Huys | Arkea-B&B Hotels | 4:36:42 |
| 110 | Owain Doull | EF Education-EasyPost | 4:37:02 |
| 111 | Stan Dewulf | Decathlon AG2R La Mondiale | 4:40:33 |
| 112 | Enzo Paleni | Groupama-FDJ | 4:42:51 |
| 113 | Fran Miholjevic | Bahrain Victorious | 4:46:16 |
| 114 | Kim Heiduk | INEOS Grenadiers | 4:46:33 |
| 115 | Kasper Asgreen | EF Education-EasyPost | 4:47:04 |
| 116 | Filippo Magli | VF Group-Bardiani CSF-Faizanè | 4:48:45 |
| 117 | Simon Clarke | Israel-Premier Tech | 4:48:51 |
| 118 | Jimmy Janssens | Alpecin-Deceuninck | 4:55:09 |
| 119 | Daan Hoole | Lidl-Trek | 4:57:19 |
| 120 | Ben Turner | INEOS Grenadiers | 5:03:49 |
| 121 | Gianni Moscon | Red Bull-BORA-hansgrohe | 5:05:00 |
| 122 | Nico Denz | Red Bull-BORA-hansgrohe | 5:05:18 |
| 123 | Max Kanter | XDS Astana Team | 5:05:26 |
| 124 | Anthony Perez | Cofidis | 5:08:15 |
| 125 | Xabier Azparren | Q36.5 Pro Cycling Team | 5:09:49 |
| 126 | Jacopo Mosca | Lidl-Trek | 5:09:58 |
| 127 | Albert Torres | Movistar Team | 5:11:13 |
| 128 | Dries De Bondt | Decathlon AG2R La Mondiale | 5:13:22 |
| 129 | Giovanni Lonardi | Team Polti-VisitMalta | 5:20:03 |
| 130 | Sven Erik Bystrøm | Groupama-FDJ | 5:23:13 |
| 131 | Emils Liepins | Q36.5 Pro Cycling Team | 5:23:42 |
| 132 | Josef Cerný | Soudal Quick-Step | 5:29:33 |
| 133 | Edoardo Affini | Team Visma | Lease a Bike | 5:29:52 |
| 134 | Tord Gudmestad | Decathlon AG2R La Mondiale | 5:30:25 |
| 135 | Giosue Epis | Arkea-B&B Hotels | 5:31:00 |
| 136 | Ethan Hayter | Soudal Quick-Step | 5:31:39 |
| 137 | Clément Davy | Groupama-FDJ | 5:32:29 |
| 138 | Luca Mozzato | Arkea-B&B Hotels | 5:33:26 |
| 139 | Jan Maas | Cofidis | 5:34:04 |
| 140 | Nicolas Debeaumarché | Cofidis | 5:34:38 |
| 141 | Andrea Pietrobon | Team Polti-VisitMalta | 5:36:27 |
| 142 | Matevz Govekar | Bahrain Victorious | 5:38:24 |
| 143 | Michael Hepburn | Team Jayco-AlUla | 5:38:36 |
| 144 | Francisco Muñoz | Team Polti-VisitMalta | 5:41:19 |
| 145 | Sam Bennett | Decathlon AG2R La Mondiale | 5:41:25 |
| 146 | Luke Lamperti | Soudal Quick-Step | 5:41:38 |
| 147 | Anton Kuzmin | XDS Astana Team | 5:42:03 |
| 148 | Alex Edmondson | Team Picnic PostNL | 5:42:42 |
| 149 | Olav Kooij | Team Visma | Lease a Bike | 5:45:37 |
| 150 | Casper van Uden | Team Picnic PostNL | 5:48:34 |
| 151 | Enrico Zanoncello | VF Group-Bardiani CSF-Faizanè | 5:51:33 |
| 152 | Matteo Moschetti | Q36.5 Pro Cycling Team | 5:55:35 |
| 153 | Gijs Van Hoecke | Intermarché-Wanty | 5:55:56 |
| 154 | Maikel Zijlaard | Tudor Pro Cycling Team | 5:56:04 |
| 155 | Taco van der Hoorn | Intermarché-Wanty | 5:57:04 |
| 156 | Niklas Märkl | Team Picnic PostNL | 5:59:46 |
| 157 | Gerben Thijssen | Intermarché-Wanty | 6:04:31 |
| 158 | Jensen Plowright | Alpecin-Deceuninck | 6:07:50 |
| 159 | Alexander Krieger | Tudor Pro Cycling Team | 6:25:03 |
Other Competitions, Mountains, points, young rider & teams:
| Mountains | |||
| 1 | Lorenzo Fortunato | XDS Astana Team | 355 Points |
| 2 | Christian Scaroni | XDS Astana Team | 201 |
| 3 | Nicolas Prodhomme | Decathlon AG2R La Mondiale | 107 |
| 4 | Manuele Tarozzi | VF Group-Bardiani CSF-Faizanè | 87 |
| 5 | Carlos Verona | Lidl-Trek | 61 |
| 6 | Chris Harper | Team Jayco-AlUla | 60 |
| 7 | Richard Carapaz | EF Education-EasyPost | 47 |
| 8 | Romain Bardet | Team Picnic PostNL | 47 |
| 9 | Isaac del Toro | UAE Team Emirates-XRG | 45 |
| 10 | Pello Bilbao | Bahrain Victorious | 42 |
| 11 | Alessandro Verre | Arkea-B&B Hotels | 42 |
| 12 | Paul Double | Team Jayco-AlUla | 36 |
| 13 | Diego Ulissi | XDS Astana Team | 34 |
| 14 | Rafal Majka | UAE Team Emirates-XRG | 33 |
| 15 | Sylvain Moniquet | Cofidis | 32 |
| 16 | Gianmarco Garofoli | Soudal Quick-Step | 30 |
| 17 | Giulio Pellizzari | Red Bull-BORA-hansgrohe | 28 |
| 18 | Nairo Quintana | Movistar Team | 28 |
| 19 | Georg Steinhauser | EF Education-EasyPost | 24 |
| 20 | Lorenzo Germani | Groupama-FDJ | 23 |
| 21 | Gijs Leemreize | Team Picnic PostNL | 22 |
| 22 | Antonio Tiberi | Bahrain Victorious | 20 |
| 23 | Marco Frigo | Israel-Premier Tech | 20 |
| 24 | Patrick Konrad | Lidl-Trek | 20 |
| 25 | Mattia Cattaneo | Soudal Quick-Step | 19 |
| 26 | Egan Bernal | INEOS Grenadiers | 19 |
| 27 | Wout van Aert | Team Visma | Lease a Bike | 18 |
| 28 | Taco van der Hoorn | Intermarché-Wanty | 18 |
| 29 | Enzo Paleni | Groupama-FDJ | 17 |
| 30 | Alessandro Tonelli | Team Polti-VisitMalta | 16 |
| 31 | Wout Poels | XDS Astana Team | 15 |
| 32 | Martin Marcellusi | VF Group-Bardiani CSF-Faizanè | 14 |
| 33 | Mads Pedersen | Lidl-Trek | 12 |
| 34 | Fausto Masnada | XDS Astana Team | 12 |
| 35 | Simone Petilli | Intermarché-Wanty | 12 |
| 36 | Simon Yates | Team Visma | Lease a Bike | 11 |
| 37 | Mathias Vacek | Lidl-Trek | 11 |
| 38 | Igor Arrieta | UAE Team Emirates-XRG | 10 |
| 39 | Bart Lemmen | Team Visma | Lease a Bike | 10 |
| 40 | Davide Piganzoli | Team Polti-VisitMalta | 9 |
| 41 | Quinten Hermans | Alpecin-Deceuninck | 9 |
| 42 | Kasper Asgreen | EF Education-EasyPost | 9 |
| 43 | Derek Gee | Israel-Premier Tech | 9 |
| 44 | Chris Hamilton | Team Picnic PostNL | 9 |
| 45 | Filippo Zana | Team Jayco-AlUla | 9 |
| 46 | Brandon McNulty | UAE Team Emirates-XRG | 8 |
| 47 | Jefferson Cepeda | Movistar Team | 8 |
| 48 | Daniel Martinez | Red Bull-BORA-hansgrohe | 8 |
| 49 | Jacopo Mosca | Lidl-Trek | 8 |
| 50 | Nicola Conci | XDS Astana Team | 7 |
| 51 | Rémy Rochas | Groupama-FDJ | 7 |
| 52 | Damiano Caruso | Bahrain Victorious | 6 |
| 53 | Florian Stork | Tudor Pro Cycling Team | 6 |
| 54 | Davide Formolo | Movistar Team | 6 |
| 55 | Davide De Pretto | Team Jayco-AlUla | 6 |
| 56 | Darren Rafferty | EF Education-EasyPost | 6 |
| 57 | Giosue Epis | Arkea-B&B Hotels | 6 |
| 58 | Lorenzo Milesi | Movistar Team | 5 |
| 59 | Wilco Kelderman | Team Visma | Lease a Bike | 5 |
| 60 | Mirco Maestri | Team Polti-VisitMalta | 5 |
| 61 | Mattia Bais | Team Polti-VisitMalta | 4 |
| 62 | Steven Kruijswijk | Team Visma | Lease a Bike | 4 |
| 63 | Edward Planckaert | Alpecin-Deceuninck | 4 |
| 64 | Andrea Pietrobon | Team Polti-VisitMalta | 4 |
| 65 | Mark Donovan | Q36.5 Pro Cycling Team | 3 |
| 66 | Francisco Muñoz | Team Polti-VisitMalta | 3 |
| 67 | Michael Storer | Tudor Pro Cycling Team | 2 |
| 68 | Louis Meintjes | Intermarché-Wanty | 2 |
| 69 | Yannis Voisard | Tudor Pro Cycling Team | 2 |
| 70 | Filippo Baroncini | UAE Team Emirates-XRG | 2 |
| 71 | Davide Bais | Team Polti-VisitMalta | 2 |
| 72 | Kaden Groves | Alpecin-Deceuninck | 2 |
| 73 | Dries De Bondt | Decathlon AG2R La Mondiale | 2 |
| 74 | Einer Rubio | Movistar Team | 1 |
| 75 | Adam Yates | UAE Team Emirates-XRG | 1 |
| 76 | Kevin Geniets | Groupama-FDJ | 1 |
| 77 | Milan Vader | Q36.5 Pro Cycling Team | 1 |
| 78 | Timo Kielich | Alpecin-Deceuninck | 1 |
| 79 | Jon Barrenetxea | Movistar Team | 1 |
| 80 | Kevin Colleoni | Intermarché-Wanty | 1 |
| 81 | Daan Hoole | Lidl-Trek | 1 |
| 82 | Edoardo Affini | Team Visma | Lease a Bike | 1 |
| 83 | Luca Mozzato | Arkea-B&B Hotels | 1 |
| Points | |||
| 1 | Mads Pedersen | Lidl-Trek | 295 points |
| 2 | Olav Kooij | Team Visma | Lease a Bike | 185 |
| 3 | Wout van Aert | Team Visma | Lease a Bike | 127 |
| 4 | Dries De Bondt | Decathlon AG2R La Mondiale | 127 |
| 5 | Isaac del Toro | UAE Team Emirates-XRG | 109 |
| 6 | Kaden Groves | Alpecin-Deceuninck | 98 |
| 7 | Casper van Uden | Team Picnic PostNL | 89 |
| 8 | Alessandro Tonelli | Team Polti-VisitMalta | 88 |
| 9 | Richard Carapaz | EF Education-EasyPost | 77 |
| 10 | Orluis Aular | Movistar Team | 76 |
| 11 | Mirco Maestri | Team Polti-VisitMalta | 72 |
| 12 | Kasper Asgreen | EF Education-EasyPost | 60 |
| 13 | Nico Denz | Red Bull-BORA-hansgrohe | 50 |
| 14 | Tom Pidcock | Q36.5 Pro Cycling Team | 47 |
| 15 | Lorenzo Fortunato | XDS Astana Team | 45 |
| 16 | Edoardo Zambanini | Bahrain Victorious | 41 |
| 17 | Manuele Tarozzi | VF Group-Bardiani CSF-Faizanè | 40 |
| 18 | Nicolas Prodhomme | Decathlon AG2R La Mondiale | 38 |
| 19 | Diego Ulissi | XDS Astana Team | 35 |
| 20 | Giosue Epis | Arkea-B&B Hotels | 34 |
| 21 | Taco van der Hoorn | Intermarché-Wanty | 34 |
| 22 | Daan Hoole | Lidl-Trek | 33 |
| 23 | Damiano Caruso | Bahrain Victorious | 33 |
| 24 | Ben Turner | INEOS Grenadiers | 33 |
| 25 | Enzo Paleni | Groupama-FDJ | 32 |
| 26 | Christian Scaroni | XDS Astana Team | 31 |
| 27 | Derek Gee | Israel-Premier Tech | 31 |
| 28 | Filippo Magli | VF Group-Bardiani CSF-Faizanè | 31 |
| 29 | Davide De Pretto | Team Jayco-AlUla | 30 |
| 30 | Simon Yates | Team Visma | Lease a Bike | 29 |
| 31 | Gianmarco Garofoli | Soudal Quick-Step | 29 |
| 32 | Jensen Plowright | Alpecin-Deceuninck | 29 |
| 33 | Egan Bernal | INEOS Grenadiers | 28 |
| 34 | Antonio Tiberi | Bahrain Victorious | 27 |
| 35 | Martin Marcellusi | VF Group-Bardiani CSF-Faizanè | 26 |
| 36 | Mattia Cattaneo | Soudal Quick-Step | 26 |
| 37 | Edward Planckaert | Alpecin-Deceuninck | 26 |
| 38 | Matteo Moschetti | Q36.5 Pro Cycling Team | 25 |
| 39 | Maikel Zijlaard | Tudor Pro Cycling Team | 25 |
| 40 | Romain Bardet | Team Picnic PostNL | 24 |
| 41 | Rémy Rochas | Groupama-FDJ | 24 |
| 42 | Stefano Oldani | Cofidis | 22 |
| 43 | Corbin Strong | Israel-Premier Tech | 22 |
| 44 | Andrea Pietrobon | Team Polti-VisitMalta | 21 |
| 45 | Alessandro Verre | Arkea-B&B Hotels | 21 |
| 46 | Sam Bennett | Decathlon AG2R La Mondiale | 21 |
| 47 | Josef Cerný | Soudal Quick-Step | 20 |
| 48 | Filippo Fiorelli | VF Group-Bardiani CSF-Faizanè | 20 |
| 49 | Carlos Verona | Lidl-Trek | 19 |
| 50 | Wilco Kelderman | Team Visma | Lease a Bike | 19 |
| 51 | Mattia Bais | Team Polti-VisitMalta | 17 |
| 52 | Rick Pluimers | Tudor Pro Cycling Team | 17 |
| 53 | Michael Storer | Tudor Pro Cycling Team | 17 |
| 54 | Luke Lamperti | Soudal Quick-Step | 17 |
| 55 | Xabier Azparren | Q36.5 Pro Cycling Team | 16 |
| 56 | Giulio Pellizzari | Red Bull-BORA-hansgrohe | 16 |
| 57 | Max Poole | Team Picnic PostNL | 16 |
| 58 | Nicola Conci | XDS Astana Team | 16 |
| 59 | Lorenzo Milesi | Movistar Team | 16 |
| 60 | Davide Bais | Team Polti-VisitMalta | 16 |
| 61 | Enrico Zanoncello | VF Group-Bardiani CSF-Faizanè | 16 |
| 62 | Chris Harper | Team Jayco-AlUla | 15 |
| 63 | Marco Frigo | Israel-Premier Tech | 15 |
| 64 | Georg Steinhauser | EF Education-EasyPost | 15 |
| 65 | Mathias Vacek | Lidl-Trek | 15 |
| 66 | Chris Hamilton | Team Picnic PostNL | 14 |
| 67 | Brandon McNulty | UAE Team Emirates-XRG | 14 |
| 68 | Mark Donovan | Q36.5 Pro Cycling Team | 14 |
| 69 | Dorian Godon | Decathlon AG2R La Mondiale | 14 |
| 70 | Francesco Busatto | Intermarché-Wanty | 14 |
| 71 | Alex Edmondson | Team Picnic PostNL | 14 |
| 72 | Gijs Leemreize | Team Picnic PostNL | 13 |
| 73 | Edoardo Affini | Team Visma | Lease a Bike | 13 |
| 74 | Francisco Muñoz | Team Polti-VisitMalta | 12 |
| 75 | Florian Stork | Tudor Pro Cycling Team | 12 |
| 76 | Lorenzo Germani | Groupama-FDJ | 12 |
| 77 | Sylvain Moniquet | Cofidis | 12 |
| 78 | Ethan Hayter | Soudal Quick-Step | 12 |
| 79 | Quentin Pacher | Groupama-FDJ | 11 |
| 80 | Clément Davy | Groupama-FDJ | 11 |
| 81 | Jefferson Cepeda | Movistar Team | 10 |
| 82 | Steven Kruijswijk | Team Visma | Lease a Bike | 10 |
| 83 | Filippo Baroncini | UAE Team Emirates-XRG | 10 |
| 84 | Giovanni Lonardi | Team Polti-VisitMalta | 10 |
| 85 | Luca Mozzato | Arkea-B&B Hotels | 10 |
| 86 | Einer Rubio | Movistar Team | 9 |
| 87 | Andrea Vendrame | Decathlon AG2R La Mondiale | 9 |
| 88 | Davide Formolo | Movistar Team | 9 |
| 89 | Quinten Hermans | Alpecin-Deceuninck | 9 |
| 90 | Max Kanter | XDS Astana Team | 9 |
| 91 | Igor Arrieta | UAE Team Emirates-XRG | 8 |
| 92 | Matevz Govekar | Bahrain Victorious | 8 |
| 93 | Gerben Thijssen | Intermarché-Wanty | 7 |
| 94 | Pello Bilbao | Bahrain Victorious | 6 |
| 95 | Lawrence Warbasse | Tudor Pro Cycling Team | 6 |
| 96 | Mikkel Honore | EF Education-EasyPost | 6 |
| 97 | Bart Lemmen | Team Visma | Lease a Bike | 5 |
| 98 | Filippo Zana | Team Jayco-AlUla | 5 |
| 99 | Darren Rafferty | EF Education-EasyPost | 5 |
| 100 | Dylan van Baarle | Team Visma | Lease a Bike | 5 |
| 101 | Milan Vader | Q36.5 Pro Cycling Team | 4 |
| 102 | Rafal Majka | UAE Team Emirates-XRG | 3 |
| 103 | Nairo Quintana | Movistar Team | 3 |
| 104 | Thymen Arensman | INEOS Grenadiers | 3 |
| 105 | Damien Howson | Q36.5 Pro Cycling Team | 3 |
| 106 | Lucas Hamilton | INEOS Grenadiers | 3 |
| 107 | Kevin Geniets | Groupama-FDJ | 2 |
| 108 | Michael Hepburn | Team Jayco-AlUla | 2 |
| 109 | Niklas Märkl | Team Picnic PostNL | 2 |
| 110 | Adam Yates | UAE Team Emirates-XRG | 1 |
| 111 | Davide Piganzoli | Team Polti-VisitMalta | 1 |
| 112 | Yannis Voisard | Tudor Pro Cycling Team | 1 |
| 113 | Fausto Masnada | XDS Astana Team | 1 |
| 114 | Wout Poels | XDS Astana Team | 1 |
| 115 | Jon Barrenetxea | Movistar Team | 1 |
| 116 | Anthony Perez | Cofidis | 1 |
| Young Rider | |||
| 1 | Isaac del Toro | UAE Team Emirates-XRG | 82hr 34min 57sec |
| 2 | Giulio Pellizzari | Red Bull-BORA-hansgrohe | @ 5min 32sec |
| 3 | Max Poole | Team Picnic PostNL | 14:19 |
| 4 | Davide Piganzoli | Team Polti-VisitMalta | 23:57 |
| 5 | Antonio Tiberi | Bahrain Victorious | 42:08 |
| 6 | Embret Svestad-Bårdseng | Arkea-B&B Hotels | 1:02:44 |
| 7 | Edoardo Zambanini | Bahrain Victorious | 1:22:03 |
| 8 | Marco Frigo | Israel-Premier Tech | 1:28:24 |
| 9 | Gianmarco Garofoli | Soudal Quick-Step | 1:49:57 |
| 10 | Igor Arrieta | UAE Team Emirates-XRG | 1:56:19 |
| 11 | Martin Tjøtta | Arkea-B&B Hotels | 2:22:09 |
| 12 | Mathias Vacek | Lidl-Trek | 2:39:03 |
| 13 | Lorenzo Germani | Groupama-FDJ | 2:50:29 |
| 14 | Georg Steinhauser | EF Education-EasyPost | 3:18:58 |
| 15 | Martin Marcellusi | VF Group-Bardiani CSF-Faizanè | 3:19:15 |
| 16 | Davide De Pretto | Team Jayco-AlUla | 3:24:58 |
| 17 | Filippo Baroncini | UAE Team Emirates-XRG | 3:26:30 |
| 18 | Felix Engelhardt | Team Jayco-AlUla | 3:33:21 |
| 19 | Darren Rafferty | EF Education-EasyPost | 3:47:55 |
| 20 | Lorenzo Milesi | Movistar Team | 3:50:08 |
| 21 | Jon Barrenetxea | Movistar Team | 3:58:38 |
| 22 | Corbin Strong | Israel-Premier Tech | 4:03:30 |
| 23 | Francesco Busatto | Intermarché-Wanty | 4:13:44 |
| 24 | Fabio Van den Bossche | Alpecin-Deceuninck | 4:14:27 |
| 25 | Alessandro Verre | Arkea-B&B Hotels | 4:22:42 |
| 26 | Rick Pluimers | Tudor Pro Cycling Team | 4:26:42 |
| 27 | Enzo Paleni | Groupama-FDJ | 4:38:55 |
| 28 | Fran Miholjevic | Bahrain Victorious | 4:42:20 |
| 29 | Kim Heiduk | INEOS Grenadiers | 4:42:37 |
| 30 | Tord Gudmestad | Decathlon AG2R La Mondiale | 5:26:29 |
| 31 | Giosue Epis | Arkea-B&B Hotels | 5:27:04 |
| 32 | Matevz Govekar | Bahrain Victorious | 5:34:28 |
| 33 | Francisco Muñoz | Team Polti-VisitMalta | 5:37:23 |
| 34 | Luke Lamperti | Soudal Quick-Step | 5:37:42 |
| 35 | Olav Kooij | Team Visma | Lease a Bike | 5:41:41 |
| 36 | Casper van Uden | Team Picnic PostNL | 5:44:38 |
| 37 | Jensen Plowright | Alpecin-Deceuninck | 6:03:54 |
| Teams | ||
| 1 | UAE Team Emirates-XRG | 247hr 53min 24sec |
| 2 | Bahrain Victorious | @ 58min 40sec |
| 3 | Visma | Lease a Bike | 1:15:37 |
| 4 | XDS Astana Team | 1:46:40 |
| 5 | Tudor Pro Cycling Team | 1:52:53 |
| 6 | Movistar Team | 1:52:56 |
| 7 | Team Picnic PostNL | 2:25:21 |
| 8 | Red Bull-BORA-hansgrohe | 2:52:52 |
| 9 | Israel-Premier Tech | 3:06:01 |
| 10 | INEOS Grenadiers | 3:09:08 |
| 11 | EF Education-EasyPost | 3:16:01 |
| 12 | Team Polti-VisitMalta | 4:15:32 |
| 13 | Soudal Quick-Step | 4:27:21 |
| 14 | Team Jayco AlUla | 4:42:51 |
| 15 | Groupama-FDJ | 4:45:22 |
| 16 | Q36.5 Pro Cycling Team | 4:48:38 |
| 17 | Arkéa-B&B Hotels | 5:16:04 |
| 18 | Decathlon AG2R La Mondiale | 5:26:18 |
| 19 | Lidl-Trek | 6:14:12 |
| 20 | Cofidis | 6:16:54 |
| 21 | Intermarché-Wanty | 6:40:16 |
| 22 | VF Group-Bardiani CSF-Faizanè | 7:46:18 |
| 23 | Alpecin-Deceuninck | 8:59:35 |
Stage 21 map & profile:

Stage 21 map

Stage 21 profile
Stage 21 photos by Fotoreporter Sirotti:

Simon Yates (in pink) goes by the Colosseum

Here comes the pack to wrap up the 2025 Giro d'Italia.

Olav Kooij wins stage 21

Stage 21 winner Olav Kooij

UAE Team Emirates-XRG wind the teams classification

King of the Mountains Lorenzo Fortunato

Points classification winner Mads Pedersen

Isaac del Toro in the Best Young Rider's white jersey

Team Visma | Lease a Bike celebrates Simon Yates' winning the Giro.

The final GC podium, from left: Isaac del Toro (2nd), Simon Yates (1st) & Richard Carapaz (3rd)

Simon Yates, winner of the 2025 Giro d'Italia
Saturday, May 31: Stage 20, Verrès - Sestrière (Vialattea), 205 km
Complete stage 20 results, stage story, photos, map & profile

Chris Harper wins stage 20. Sirotti photo
Results:
| 1 | Chris Harper | Team Jayco-AlUla | 5hr 27min 29sec |
| 2 | Alessandro Verre | Arkea-B&B Hotels | @ 1min 49sec |
| 3 | Simon Yates | Team Visma | Lease a Bike | 1:57 |
| 4 | Gianmarco Garofoli | Soudal Quick-Step | 3:52 |
| 5 | Rémy Rochas | Groupama-FDJ | 3:57 |
| 6 | Martin Marcellusi | VF Group-Bardiani CSF-Faizanè | 4:31 |
| 7 | Carlos Verona | Lidl-Trek | s.t. |
| 8 | Max Poole | Team Picnic PostNL | 6:45 |
| 9 | Isaac del Toro | UAE Team Emirates-XRG | 7:10 |
| 10 | Giulio Pellizzari | Red Bull-BORA-hansgrohe | 7:10 |
GC after stage 20:
| 1 | Simon Yates | Team Visma | Lease a Bike | 79hr 18min 42sec |
| 2 | Isaac del Toro | UAE Team Emirates-XRG | @ 3min 56sec |
| 3 | Richard Carapaz | EF Education-EasyPost | 4:43 |
| 4 | Derek Gee | Israel-Premier Tech | 6:23 |
| 5 | Damiano Caruso | Bahrain Victorious | 7:32 |
| 6 | Giulio Pellizzari | Red Bull-BORA-hansgrohe | 9:28 |
| 7 | Egan Bernal | INEOS Grenadiers | 12:42 |
| 8 | Einer Rubio | Movistar Team | 13:05 |
| 9 | Brandon McNulty | UAE Team Emirates-XRG | 13:36 |
| 10 | Michael Storer | Tudor Pro Cycling Team | 14:27 |
Friday, May 30: Stage 19, Biella - Champoluc, 166 km
Complete stage 19 results, stage story, photos, map & profile

Stage winner Nicolas Prodhomme beats his nearest chaser by nearly a minute. Sirotti photo
Results:
| 1 | Nicolas Prodhomme | Decathlon AG2R La Mondiale | 4hr 50min 35sec |
| 2 | Isaac del Toro | UAE Team Emirates-XRG | @ 58sec |
| 3 | Richard Carapaz | EF Education-EasyPost | s.t. |
| 4 | Damiano Caruso | Bahrain Victorious | 1:22 |
| 5 | Brandon McNulty | UAE Team Emirates-XRG | s.t. |
| 6 | Egan Bernal | INEOS Grenadiers | s.t. |
| 7 | Simon Yates | Team Visma | Lease a Bike | s.t. |
| 8 | Rafal Majka | UAE Team Emirates-XRG | s.t. |
| 9 | Antonio Tiberi | Bahrain Victorious | s.t. |
| 10 | Einer Rubio | Movistar Team | s.t. |
GC after stage 19:
| 1 | Isaac del Toro | UAE Team Emirates-XRG | 73hr 47min 59sec |
| 2 | Richard Carapaz | EF Education-EasyPost | @ 43sec |
| 3 | Simon Yates | Team Visma | Lease a Bike | 1:21 |
| 4 | Derek Gee | Israel-Premier Tech | 2:27 |
| 5 | Damiano Caruso | Bahrain Victorious | 3:36 |
| 6 | Egan Bernal | INEOS Grenadiers | 5:13 |
| 7 | Giulio Pellizzari | Red Bull-BORA-hansgrohe | 5:32 |
| 8 | Einer Rubio | Movistar Team | 6:39 |
| 9 | Michael Storer | Tudor Pro Cycling Team | 9:11 |
| 10 | Brandon McNulty | UAE Team Emirates-XRG | 9:33 |
Thursday, May 29: Stage 18, Morbegno - Cesano Maderno, 144 km
Complete stage 18 results stage story, photos, map & profile

Nico Denz wins stage 18. Sirotti photo
Results:
| 1 | Nico Denz | Red Bull-BORA-hansgrohe | 3hr 12min 7sec |
| 2 | Mirco Maestri | Team Polti-VisitMalta | @ 1min 1sec |
| 3 | Edward Planckaert | Alpecin-Deceuninck | s.t. |
| 4 | Filippo Magli | VF Group-Bardiani CSF-Faizanè | s.t. |
| 5 | Alex Edmondson | Team Picnic PostNL | s.t. |
| 6 | Dries De Bondt | Decathlon AG2R La Mondiale | s.t. |
| 7 | Daan Hoole | Lidl-Trek | s.t. |
| 8 | Davide De Pretto | Team Jayco-AlUla | s.t. |
| 9 | Nicola Conci | XDS Astana Team | s.t. |
| 10 | Lawrence Warbasse | Tudor Pro Cycling Team | s.t. |
GC after stage 18:
| 1 | Isaac del Toro | UAE Team Emirates-XRG | 68hr 56min 32sec |
| 2 | Richard Carapaz | EF Education-EasyPost | @ 41sec |
| 3 | Simon Yates | Team Visma | Lease a Bike | 0:51 |
| 4 | Derek Gee | Israel-Premier Tech | 1:57 |
| 5 | Damiano Caruso | Bahrain Victorious | 3:06 |
| 6 | Egan Bernal | INEOS Grenadiers | 4:43 |
| 7 | Giulio Pellizzari | Red Bull-BORA-hansgrohe | 5:02 |
| 8 | Einer Rubio | Movistar Team | 6:09 |
| 9 | Adam Yates | UAE Team Emirates-XRG | 7:45 |
| 10 | Michael Storer | Tudor Pro Cycling Team | 7:46 |
Wednesday, May 28: Stage 17, San Michele all'Adige - Bormio, 155 km
Complete stage 17 results, stage story, photos, map & profile

The stage and the race lead are Isaac del Toro's. Photo: La Presse
Results:
| 1 | Isaac del Toro | UAE Team Emirates-XRG | 3hr 58min 48sec |
| 2 | Romain Bardet | Team Picnic PostNL | @ 4sec |
| 3 | Richard Carapaz | EF Education-EasyPost | s.t. |
| 4 | Simon Yates | Team Visma | Lease a Bike | 0:15 |
| 5 | Giulio Pellizzari | Red Bull-BORA-hansgrohe | 0:16 |
| 6 | Derek Gee | Israel-Premier Tech | s.t. |
| 7 | Damiano Caruso | Bahrain Victorious | s.t. |
| 8 | Einer Rubio | Movistar Team | s.t. |
| 9 | Max Poole | Team Picnic PostNL | s.t. |
| 10 | Afonso Eulalio | Bahrain Victorious | 0:56 |
GC after stage 17:
| 1 | Isaac del Toro | UAE Team Emirates-XRG | 65hr 30min 34sec |
| 2 | Richard Carapaz | EF Education-EasyPost | @ 41sec |
| 3 | Simon Yates | Team Visma | Lease a Bike | 0:51 |
| 4 | Derek Gee | Israel-Premier Tech | 1:57 |
| 5 | Damiano Caruso | Bahrain Victorious | 3:06 |
| 6 | Egan Bernal | INEOS Grenadiers | 4:43 |
| 7 | Giulio Pellizzari | Red Bull-BORA-hansgrohe | 5:02 |
| 8 | Einer Rubio | Movistar Team | 6:09 |
| 9 | Adam Yates | UAE Team Emirates-XRG | 7:45 |
| 10 | Michael Storer | Tudor Pro Cycling Team | 7:46 |
Tuesday, May 27: Stage 16, Piazzola sul Brenta - San Valentino (Brentonico), 203 km
Complete stage 16 results, stage story, photos, map & profile

Teammates Lorenzo Fortunato (left) and Christian Scaroni win the stage. Scaroni was given first place. Photo: La Presse
Results:
| 1 | Christian Scaroni | XDS Astana Team | 5hr 35min 5sec |
| 2 | Lorenzo Fortunato | XDS Astana Team | s.t. |
| 3 | Giulio Pellizzari | Red Bull-BORA-hansgrohe | @ 55sec |
| 4 | Richard Carapaz | EF Education-EasyPost | 1:10 |
| 5 | Derek Gee | Israel-Premier Tech | 1:23 |
| 6 | Jefferson Cepeda | Movistar Team | 1:43 |
| 7 | Michael Storer | Tudor Pro Cycling Team | 1:52 |
| 8 | Simon Yates | Team Visma | Lease a Bike | s.t. |
| 9 | Gijs Leemreize | Team Picnic PostNL | 2:19 |
| 10 | Yannis Voisard | Tudor Pro Cycling Team | 2:31 |
GC after stage 16:
| 1 | Isaac del Toro | UAE Team Emirates-XRG | 61hr 31min 56sec |
| 2 | Simon Yates | Team Visma | Lease a Bike | @ 26sec |
| 3 | Richard Carapaz | EF Education-EasyPost | 0:31 |
| 4 | Derek Gee | Israel-Premier Tech | 1:31 |
| 5 | Damiano Caruso | Bahrain Victorious | 2:40 |
| 6 | Egan Bernal | INEOS Grenadiers | 3:23 |
| 7 | Michael Storer | Tudor Pro Cycling Team | 3:31 |
| 8 | Antonio Tiberi | Bahrain Victorious | 4:07 |
| 9 | Giulio Pellizzari | Red Bull-BORA-hansgrohe | 4:36 |
| 10 | Adam Yates | UAE Team Emirates-XRG | 5:08 |
Monday, May 26: Rest day three.
Sunday, May 25: Stage 15, Fiume Veneto - Asiago, 219 km
Complete stage 15 results, stage story, photos, map & profile

Carlos Verona wins stage fifteen. Photo: La Presse News
Results:
| 1 | Carlos Verona | Lidl-Trek | 5hr 15min 41sec |
| 2 | Florian Stork | Tudor Pro Cycling Team | @ 22sec |
| 3 | Christian Scaroni | XDS Astana Team | 0:23 |
| 4 | Romain Bardet | Team Picnic PostNL | s.t. |
| 5 | Nicolas Prodhomme | Decathlon AG2R La Mondiale | s.t. |
| 6 | Filippo Zana | Team Jayco-AlUla | s.t. |
| 7 | Gianmarco Garofoli | Soudal Quick-Step | 0:26 |
| 8 | Filippo Fiorelli | VF Group-Bardiani CSF-Faizanè | 0:29 |
| 9 | Damiano Caruso | Bahrain Victorious | s.t. |
| 10 | Max Poole | Team Picnic PostNL | s.t. |
GC after stage 15:
| 1 | Isaac del Toro | UAE Team Emirates-XRG | 55hr 54min 5sec |
| 2 | Simon Yates | Team Visma | Lease a Bike | @ 1min 20sec |
| 3 | Juan Ayuso | UAE Team Emirates-XRG | 1:26 |
| 4 | Richard Carapaz | EF Education-EasyPost | 2:07 |
| 5 | Derek Gee | Israel-Premier Tech | 2:54 |
| 6 | Damiano Caruso | Bahrain Victorious | 2:55 |
| 7 | Antonio Tiberi | Bahrain Victorious | 3:02 |
| 8 | Egan Bernal | INEOS Grenadiers | 3:38 |
| 9 | Thymen Arensman | INEOS Grenadiers | 3:45 |
| 10 | Primoz Roglic | Red Bull-BORA-hansgrohe | 3:53 |
Saturday, May 24: Stage 14, Treviso - Nova Gorica/Gorizia (Slovenia), 195 km
Complete stage 14 results, stage story, photos, map & profile

Solo win for Kasper Asgreen. Photo: Sprint Cycling
Results:
| 1 | Kasper Asgreen | EF Education-EasyPost | 4hr 4min 40sec |
| 2 | Kaden Groves | Alpecin-Deceuninck | @ 16sec |
| 3 | Olav Kooij | Team Visma | Lease a Bike | s.t. |
| 4 | Orluis Aular | Movistar Team | s.t. |
| 5 | Stefano Oldani | Cofidis | s.t. |
| 6 | Mirco Maestri | Team Polti-VisitMalta | s.t. |
| 7 | Derek Gee | Israel-Premier Tech | s.t. |
| 8 | Tom Pidcock | Q36.5 Pro Cycling Team | s.t. |
| 9 | Richard Carapaz | EF Education-EasyPost | s.t. |
| 10 | Mikkel Honore | EF Education-EasyPost | s.t. |
GC after stage 14:
| 1 | Isaac del Toro | UAE Team Emirates-XRG | 50hr 37min 55sec |
| 2 | Simon Yates | Team Visma | Lease a Bike | @ 1min 20sec |
| 3 | Juan Ayuso | UAE Team Emirates-XRG | 1:26 |
| 4 | Richard Carapaz | EF Education-EasyPost | 2:07 |
| 5 | Primoz Roglic | Red Bull-BORA-hansgrohe | 2:23 |
| 6 | Derek Gee | Israel-Premier Tech | 2:54 |
| 7 | Damiano Caruso | Bahrain Victorious | 2:55 |
| 8 | Antonio Tiberi | Bahrain Victorious | 3:02 |
| 9 | Egan Bernal | INEOS Grenadiers | 3:38 |
| 10 | Thymen Arensman | INEOS Grenadiers | 3:45 |
Friday, May 23: Stage 13, Rovigo - Vicenza, 180 km
Complete stage 13 results, stage story, photos, map & profile

Mads Pedersen (on left) beating Wout van Aert for the stage win. RCS photo
Results:
| 1 | Mads Pedersen | Lidl-Trek | 3hr 50min 24sec |
| 2 | Wout van Aert | Team Visma | Lease a Bike | s.t. |
| 3 | Isaac del Toro | UAE Team Emirates-XRG | @ 2sec |
| 4 | Rémy Rochas | Groupama-FDJ | 0:05 |
| 5 | Dorian Godon | Decathlon AG2R La Mondiale | s.t. |
| 6 | Primoz Roglic | Red Bull-BORA-hansgrohe | s.t. |
| 7 | Antonio Tiberi | Bahrain Victorious | s.t. |
| 8 | Derek Gee | Israel-Premier Tech | s.t. |
| 9 | Orluis Aular | Movistar Team | s.t. |
| 10 | Egan Bernal | INEOS Grenadiers | s.t. |
GC after stage 13:
| 1 | Isaac del Toro | UAE Team Emirates-XRG | 46hr 32min 59sec |
| 2 | Juan Ayuso | UAE Team Emirates-XRG | @ 38sec |
| 3 | Antonio Tiberi | Bahrain Victorious | 1:18 |
| 4 | Simon Yates | Team Visma | Lease a Bike | 1:20 |
| 5 | Primoz Roglic | Red Bull-BORA-hansgrohe | 1:35 |
| 6 | Richard Carapaz | EF Education-EasyPost | 2:07 |
| 7 | Giulio Ciccone | Lidl-Trek | 2:20 |
| 8 | Brandon McNulty | UAE Team Emirates-XRG | 2:40 |
| 9 | Egan Bernal | INEOS Grenadiers | 2:50 |
| 10 | Derek Gee | Israel-Premier Tech | 2:54 |
Thursday, May 22: Stage 12, Modena - Viadana (Oglio-Po), 172 km
Complete stage 12 results, stage story, photos, map & profile

Speedster Olav Kooij wins stage twelve. Photo: La Presse
Results:
| 1 | Olav Kooij | Team Visma | Lease a Bike | 3hr 55min 40sec |
| 2 | Casper van Uden | Team Picnic PostNL | s.t. |
| 3 | Ben Turner | INEOS Grenadiers | s.t. |
| 4 | Mads Pedersen | Lidl-Trek | s.t. |
| 5 | Kaden Groves | Alpecin-Deceuninck | s.t. |
| 6 | Milan Fretin | Cofidis | s.t. |
| 7 | Max Kanter | XDS Astana Team | s.t. |
| 8 | Paul Magnier | Soudal Quick-Step | s.t. |
| 9 | Matevz Govekar | Bahrain Victorious | s.t. |
| 10 | Matteo Moschetti | Q36.5 Pro Cycling Team | s.t. |
GC after stage 12:
| 1 | Isaac del Toro | UAE Team Emirates-XRG | 42hr 43min 28sec |
| 2 | Juan Ayuso | UAE Team Emirates-XRG | @ 33sec |
| 3 | Antonio Tiberi | Bahrain Victorious | 1:09 |
| 4 | Richard Carapaz | EF Education-EasyPost | 1:09 |
| 5 | Simon Yates | Team Visma | Lease a Bike | 1:11 |
| 6 | Primoz Roglic | Red Bull-BORA-hansgrohe | 1:26 |
| 7 | Derek Gee | Israel-Premier Tech | 1:56 |
| 8 | Giulio Ciccone | Lidl-Trek | 2:11 |
| 9 | Brandon McNulty | UAE Team Emirates-XRG | 2:18 |
| 10 | Damiano Caruso | Bahrain Victorious | 2:26 |
Wednesday, May 21: Stage 11, Viareggio - Castelnuovo ne' Monti, 186 km
Complete stage 11 results, stage story. photos, map & profile

Richard Carapaz wins stage 11. Photo: La Presse
Results:
| 1 | Richard Carapaz | EF Education-EasyPost | 4hr 35min 20sec |
| 2 | Isaac del Toro | UAE Team Emirates-XRG | @ 10sec |
| 3 | Giulio Ciccone | Lidl-Trek | s.t. |
| 4 | Tom Pidcock | Q36.5 Pro Cycling Team | s.t. |
| 5 | Egan Bernal | INEOS Grenadiers | s.t. |
| 6 | Antonio Tiberi | Bahrain Victorious | s.t. |
| 7 | Juan Ayuso | UAE Team Emirates-XRG | s.t. |
| 8 | Einer Rubio | Movistar Team | s.t. |
| 9 | Derek Gee | Israel-Premier Tech | s.t. |
| 10 | Diego Ulissi | XDS Astana Team | s.t. |
GC after stage 11:
| 1 | Isaac del Toro | UAE Team Emirates-XRG | 38hr 47min 1sec |
| 2 | Juan Ayuso | UAE Team Emirates-XRG | @ 31sec |
| 3 | Antonio Tiberi | Bahrain Victorious | 1:07 |
| 4 | Simon Yates | Team Visma | Lease a Bike | 1:09 |
| 5 | Primoz Roglic | Red Bull-BORA-hansgrohe | 1:24 |
| 6 | Richard Carapaz | EF Education-EasyPost | 1:56 |
| 7 | Giulio Ciccone | Lidl-Trek | 2:09 |
| 8 | Brandon McNulty | UAE Team Emirates-XRG | 2:16 |
| 9 | Adam Yates | UAE Team Emirates-XRG | 2:33 |
| 10 | Thymen Arensman | INEOS Grenadiers | s.t. |
Tuesday, May 20: Stage 10, Lucca - Pisa 28.6 km individual time trial
Complete stage 10 results, stage story, photos, map & profile

Stage winner Daan Hoole finishing his ride by the Leaning Tower of Pisa and the Pisa Cathedral. RCS photo
Results:
| 1 | Daan Hoole | Lidl-Trek | 32min 30sec |
| 2 | Joshua Tarling | INEOS Grenadiers | @ 7sec |
| 3 | Ethan Hayter | Soudal Quick-Step | 0:10 |
| 4 | Mattia Cattaneo | Soudal Quick-Step | 0:23 |
| 5 | Edoardo Affini | Team Visma | Lease a Bike | 0:24 |
| 6 | Jay Vine | UAE Team Emirates-XRG | 0:37 |
| 7 | Luke Plapp | Team Jayco AlUla | 0:44 |
| 8 | Marco Frigo | Israel-Premier Tech | 0:47 |
| 9 | Michael Hepburn | Team Jayco AlUla | 0:50 |
| 10 | Xabier Mikel Azparren | Q36.5 Pro Cycling Team | 0:54 |
GC after stage 10:
| 1 | Isaac Del Toro | UAE Team Emirates-XRG | 34hr 11min 37sec |
| 2 | Juan Ayuso | UAE Team Emirates-XRG | @ 25sec |
| 3 | Antonio Tiberi | Bahrain-Victorious | 1:01 |
| 4 | Simon Yates | Team Visma | Lease a Bike | 1:03 |
| 5 | Primož Roglič | Red Bull-BORA-hansgrohe | 1:18 |
| 6 | Brandon McNulty | UAE Team Emirates-XRG | 2:00 |
| 7 | Adam Yates | UAE Team Emirates-XRG | 2:06 |
| 8 | Giulio Ciccone | Lidl-Trek | 2:07 |
| 9 | Richard Carapaz | EF Education-EasyPost | 2:10 |
| 10 | Thymen Arensman | INEOS Grenadiers | 2:27 |
Monday, May 19: Rest Day 2
Sunday, May 18: Stage 9, Gubbio - Siena, 181 km
Complete stage 9 results, stage story, photos, map & profile

Wout van Aert wins stage nine ahead of Isaac Del Toro. RCS photo
Results:
| 1 | Wout van Aert | Team Visma | Lease a Bike | 4hr 15mkin 8sec |
| 2 | Isaac Del Toro | UAE Team Emirates-XRG | s.t. |
| 3 | Giulio Ciccone | Lidl-Trek | @ 58sec |
| 4 | Richard Carapaz | EF Education-EasyPost | s.t. |
| 5 | Simon Yates | Team Visma | Lease a Bike | 1:00 |
| 6 | Antonio Tiberi | Bahrain-Victorious | s.t. |
| 7 | Juan Ayuso | UAE Team Emirates-XRG | 1:07 |
| 8 | Thymen Arensman | INEOS Grenadiers | 1:10 |
| 9 | Egan Bernal | INEOS Grenadiers | s.t. |
| 10 | Adam Yates | UAE Team Emirates-XRG | s.t. |
GC after stage 9:
| 1 | Isaac Del Toro | UAE Team Emirates-XRG | 33hr 36min 45sec |
| 2 | Juan Ayuso | UAE Team Emirates-XRG | @ 1min 13sec |
| 3 | Antonio Tiberi | Bahrain-Victorious | 1:30 |
| 4 | Richard Carapaz | EF Education-EasyPost | 1:40 |
| 5 | Giulio Ciccone | Lidl-Trek | 1:41 |
| 6 | Simon Yates | Team Visma | Lease a Bike | 1:42 |
| 7 | Egan Bernal | INEOS Grenadiers | 1:57 |
| 8 | Brandon McNulty | UAE Team Emirates-XRG | 1:59 |
| 9 | Adam Yates | UAE Team Emirates-XRG | 2:01 |
| 10 | Primož Roglič | Red Bull-BORA-hansgrohe | 2:25 |
Saturday, May 17: Stage 8, Giulianova - Castelraimondo, 197 km
Complete stage 8 results, stage story, photos, map & profile

Luke Plapp wins stage eight. Photo: Sprint Cycling.
Results:
| 1 | Luke Plapp | Team Jayco AlUla | 4hr 44min 20sec |
| 2 | Wilco Kelderman | Team Visma | Lease a Bike | @ 38sec |
| 3 | Diego Ulissi | XDS Astana Team | s.t. |
| 4 | Igor Arrieta | UAE Team Emirates-XRG | 1:22 |
| 5 | Nicolas Prodhomme | Decathlon AG2R La Mondiale | 1:35 |
| 6 | Andrea Vendrame | Decathlon AG2R La Mondiale | 1:48 |
| 7 | Lorenzo Fortunato | XDS Astana Team | s.t. |
| 8 | Georg Steinhauser | EF Education-EasyPost | 2:59 |
| 9 | Romain Bardet | Team Picnic PostNL | 3:02 |
| 10 | Alessio Martinelli | VF Group-Bardiani CSF-Faizanè | 4:37 |
GC after stage 8:
| 1 | Diego Ulissi | XDS Astana Team | 29hr 21min 23sec |
| 2 | Lorenzo Fortunato | XDS Astana Team | @ 12sec |
| 3 | Primož Roglič | Red Bull-BORA-hansgrohe | 0:17 |
| 4 | Juan Ayuso | UAE Team Emirates-XRG | 0:20 |
| 5 | Isaac Del Toro | UAE Team Emirates-XRG | 0:26 |
| 6 | Antonio Tiberi | Bahrain-Victorious | 0:44 |
| 7 | Max Poole | Team Picnic PostNL | 0:47 |
| 8 | Michael Storer | Tudor Pro Cycling Team | 0:50 |
| 9 | Brandon McNulty | UAE Team Emirates-XRG | 0:51 |
| 10 | Simon Yates | Team Visma | Lease a Bike | 0:56 |
Friday, May 16: Stage 7, Castel del Sangro - Tagliacozzo, 168 km
Complete stage 7 results, stage story, photos, map & profile

Juan Aysuo wins stage seven. Sirotti photo
Results:
| 1 | Juan Ayuso | UAE Team Emirates-XRG | 4hr 20min 25sec |
| 2 | Isaac Del Toro | UAE Team Emirates-XRG | @ 4sec |
| 3 | Egan Bernal | INEOS Grenadiers | s.t. |
| 4 | Primož Roglič | Red Bull-BORA-hansgrohe | s.t. |
| 5 | Giulio Ciccone | Lidl-Trek | s.t. |
| 6 | Antonio Tiberi | Bahrain-Victorious | s.t. |
| 7 | Damiano Caruso | Bahrain-Victorious | s.t. |
| 8 | Richard Carapaz | EF Education-EasyPost | s.t. |
| 9 | Max Poole | Team Picnic PostNL | 0:08 |
| 10 | Michael Storer | Tudor Pro Cycling Team | s.t. |
GC after stage 7:
| 1 | Primož Roglič | Red Bull-BORA-hansgrohe | 24hr 32min 30sec |
| 2 | Juan Ayuso | UAE Team Emirates-XRG | @ 4sec |
| 3 | Isaac Del Toro | UAE Team Emirates-XRG | 0:09 |
| 4 | Antonio Tiberi | Bahrain-Victorious | 0:27 |
| 5 | Max Poole | Team Picnic PostNL | 0:30 |
| 6 | Michael Storer | Tudor Pro Cycling Team | 0:33 |
| 7 | Brandon McNulty | UAE Team Emirates-XRG | 0:34 |
| 8 | Mathias Vacek | Lidl-Trek | 0:37 |
| 9 | Simon Yates | Team Visma | Lease a Bike | 0:39 |
| 10 | Richard Carapaz | EF Education-EasyPost | s.t. |
Thursday, May 15: Stage 6, Potenza - Napoli, 227 km
Complete stage 6 results, stage story, photos, map & profile

Kaden Groves wins stage six. Sirotti photo
Results:
| 1 | Kaden Groves | Alpecin-Deceuninck | 4hr 59min 52sec |
| 2 | Milan Fretin | Cofidis | @ 0sec |
| 3 | Paul Magnier | Soudal Quick-Step | s.t. |
| 4 | Max Kanter | XDS Astana Team | s.t. |
| 5 | Giovanni Lonardi | Team Polti-VisitMalta | s.t. |
| 6 | Maikel Zijlaard | Tudor Pro Cycling Team | s.t. |
| 7 | Martin Marcellusi | VF Group-Bardiani CSF-Faizanè | s.t. |
| 8 | Luca Mozzato | Arkea-B&B Hotels | s.t. |
| 9 | Matevz Govekar | Bahrain Victorious | s.t. |
| 10 | Olav Kooij | Team Visma | Lease a Bike | s.t. |
GC after stage 6:
| 1 | Mads Pedersen | Lidl-Trek | 20hr 11min 44sec |
| 2 | Primoz Roglic | Red Bull-BORA-hansgrohe | @ 17sec |
| 3 | Mathias Vacek | Lidl-Trek | 0:24 |
| 4 | Brandon McNulty | UAE Team Emirates-XRG | 0:31 |
| 5 | Isaac del Toro | UAE Team Emirates-XRG | 0:32 |
| 6 | Juan Ayuso | UAE Team Emirates-XRG | 0:35 |
| 7 | Max Poole | Team Picnic PostNL | 0:43 |
| 8 | Antonio Tiberi | Bahrain Victorious | 0:44 |
| 9 | Michael Storer | Tudor Pro Cycling Team | 0:46 |
| 10 | Giulio Pellizzari | Red Bull-BORA-hansgrohe | 0:50 |
Wednesday, May 14: Stage 5, Ceglie Messapica - Matera, 151 km
Complete stage 5 results, stage story, photos, map & profile

Mads Pedersen (in pink) wins stage five. Photo: La Presse.
Results:
| 1 | Mads Pedersen | Lidl-Trek | 3hr 27min 31sec |
| 2 | Edoardo Zambanini | Bahrain Victorious | s.t. |
| 3 | Tom Pidcock | Q36.5 Pro Cycling Team | s.t. |
| 4 | Orluis Aular | Movistar Team | s.t. |
| 5 | Filippo Fiorelli | VF Group-Bardiani CSF-Faizanè | s.t. |
| 6 | Michael Storer | Tudor Pro Cycling Team | s.t. |
| 7 | Quentin Pacher | Groupama-FDJ | s.t. |
| 8 | Brandon Rivera | INEOS Grenadiers | s.t. |
| 9 | Damiano Caruso | Bahrain Victorious | s.t. |
| 10 | Isaac del Toro | UAE Team Emirates-XRG | s.t. |
GC after stage 5:
| 1 | Mads Pedersen | Lidl-Trek | 15hr 11min 52sec |
| 2 | Primoz Roglic | Red Bull-BORA-hansgrohe | @ 17sec |
| 3 | Mathias Vacek | Lidl-Trek | 0:24 |
| 4 | Brandon McNulty | UAE Team Emirates-XRG | 0:31 |
| 5 | Isaac del Toro | UAE Team Emirates-XRG | 0:32 |
| 6 | Juan Ayuso | UAE Team Emirates-XRG | 0:35 |
| 7 | Max Poole | Team Picnic PostNL | 0:43 |
| 8 | Antonio Tiberi | Bahrain Victorious | 0:44 |
| 9 | Michael Storer | Tudor Pro Cycling Team | 0:46 |
| 10 | Giulio Pellizzari | Red Bull-BORA-hansgrohe | 0:50 |
Tuesday, May 13: Stage 4, Alberobello (Pietramadre) - Lecce, 189 km
Complete stage 4 results, stage story, photos, map & profile

Casper van Uden wins stage four. Photo: La Presse
Results:
| 1 | Casper van Uden | Team Picnic PostNL | 4hr 2min 21sec |
| 2 | Olav Kooij | Team Visma | Lease a Bike | s.t. |
| 3 | Maikel Zijlaard | Tudor Pro Cycling Team | s.t. |
| 4 | Mads Pedersen | Lidl-Trek | s.t. |
| 5 | Kaden Groves | Alpecin-Deceuninck | s.t. |
| 6 | Sam Bennett | Decathlon AG2R La Mondiale | s.t. |
| 7 | Paul Magnier | Soudal Quick-Step | s.t. |
| 8 | Ben Turner | INEOS Grenadiers | s.t. |
| 9 | Matteo Moschetti | Q36.5 Pro Cycling Team | s.t. |
| 10 | Enrico Zanoncello | VF Group-Bardiani CSF-Faizanè | s.t. |
GC after stage 4:
| 1 | Mads Pedersen | Lidl-Trek | 11hr 44min 31sec |
| 2 | Primoz Roglic | Red Bull-BORA-hansgrohe | @ 7sec |
| 3 | Mathias Vacek | Lidl-Trek | 0:14 |
| 4 | Brandon McNulty | UAE Team Emirates-XRG | 0:21 |
| 5 | Isaac del Toro | UAE Team Emirates-XRG | 0:22 |
| 6 | Juan Ayuso | UAE Team Emirates-XRG | 0:25 |
| 7 | Max Poole | Team Picnic PostNL | 0:33 |
| 8 | Antonio Tiberi | Bahrain Victorious | 0:34 |
| 9 | Michael Storer | Tudor Pro Cycling Team | 0:36 |
| 10 | Giulio Pellizzari | Red Bull-BORA-hansgrohe | 0:40 |
Monday, May 12: Rest Day One - Transfer from Albania to Puglia in Southern Italy for stage four on Tuesday, May 13. The 189 km stage will start in Alberobello and finish in Lecce, in the heel of the Italian boot.
Sunday, May 11: Stage 3, Valona - Valona (Albania), 160 km
Complete stage 3 results, stage story, photos, map & profile

Mads Pedersen wins stage three and becomes the new GC leader. RCS Sport photo
Results:
| 1 | Mads Pedersen | Lidl-Trek | 3hr 49min 47sec |
| 2 | Corbin Strong | Israel-Premier Tech | s.t. |
| 3 | Orluis Aular | Movistar Team | s.t. |
| 4 | Brandon Rivera | INEOS Grenadiers | s.t. |
| 5 | Edoardo Zambanini | Bahrain Victorious | s.t. |
| 6 | Stefano Oldani | Cofidis | s.t. |
| 7 | Andrea Vendrame | Decathlon AG2R La Mondiale | s.t. |
| 8 | Filippo Fiorelli | VF Group-Bardiani CSF-Faizanè | s.t. |
| 9 | Christian Scaroni | XDS Astana Team | s.t. |
| 10 | Davide De Pretto | Team Jayco-AlUla | s.t. |
GC after stage 3:
| 1 | Mads Pedersen | Lidl-Trek | 7hr 42min 10sec |
| 2 | Primoz Roglic | Red Bull-BORA-hansgrohe | @ 9sec |
| 3 | Mathias Vacek | Lidl-Trek | 0:14 |
| 4 | Brandon McNulty | UAE Team Emirates-XRG | 0:21 |
| 5 | Juan Ayuso | UAE Team Emirates-XRG | 0:25 |
| 6 | Isaac del Toro | UAE Team Emirates-XRG | 0:26 |
| 7 | Max Poole | Team Picnic PostNL | 0:33 |
| 8 | Antonio Tiberi | Bahrain Victorious | 0:34 |
| 9 | Michael Storer | Tudor Pro Cycling Team | 0:36 |
| 10 | Giulio Pellizzari | Red Bull-BORA-hansgrohe | 0:40 |
Saturday, May 10: Stage 2, Tirana 13.7 km individual time trial
Complete stage 2 results, stage story, photos, map & profile

Joshua Tarling (INEOS Grenadiers) on his way to winning the stage. RCS Sport photo
Results:
| 1 | Joshua Tarling | INEOS Grenadiers | 16min 7sec |
| 2 | Primoz Roglic | Red Bull-BORA-hansgrohe | @ 1sec |
| 3 | Jay Vine | UAE Team Emirates-XRG | 0:03 |
| 4 | Edoardo Affini | Team Visma | Lease a Bike | 0:06 |
| 5 | Mathias Vacek | Lidl-Trek | s.t. |
| 6 | Daan Hoole | Lidl-Trek | 0:08 |
| 7 | Mads Pedersen | Lidl-Trek | 0:12 |
| 8 | Brandon McNulty | UAE Team Emirates-XRG | 0:13 |
| 9 | Ethan Hayter | Soudal Quick-Step | 0:14 |
| 10 | Juan Ayuso | UAE Team Emirates-XRG | 0:17 |
GC after stage 2
| 1 | Primoz Roglic | Red Bull-BORA-hansgrohe | 3hr 52min 32sec |
| 2 | Mads Pedersen | Lidl-Trek | @ 1sec |
| 3 | Mathias Vacek | Lidl-Trek | 0:05 |
| 4 | Brandon McNulty | UAE Team Emirates-XRG | 0:12 |
| 5 | Juan Ayuso | UAE Team Emirates-XRG | 0:16 |
| 6 | Isaac del Toro | UAE Team Emirates-XRG | 0:17 |
| 7 | Max Poole | Team Picnic PostNL | 0:24 |
| 8 | Antonio Tiberi | Bahrain Victorious | 0:25 |
| 9 | Michael Storer | Tudor Pro Cycling Team | 0:27 |
| 10 | Giulio Pellizzari | Red Bull-BORA-hansgrohe | 0:31 |
Friday, May 9: Stage 1, Durazzo - Tirana (Albania), 160 km
Complete stage 1 results, stage story, photos, map & profiles

Could it get any closer? Mads Pedersen just beats Wout van Aert.
Results:
160 kilometers raced at an average speed of 44.362 km/hr
| 1 | Mads Pedersen | Lidl-Trek | 3hr 36min 24sec |
| 2 | Wout van Aert | Team Visma | Lease a Bike | s.t. |
| 3 | Orluis Aular | Movistar Team | s.t. |
| 4 | Francesco Busatto | Intermarché-Wanty | s.t. |
| 5 | Tom Pidcock | Q36.5 Pro Cycling Team | s.t. |
| 6 | Diego Ulissi | XDS Astana Team | s.t. |
| 7 | Richard Carapaz | EF Education-EasyPost | s.t. |
| 8 | Max Poole | Team Picnic PostNL | s.t. |
| 9 | Nicola Conci | XDS Astana Team | s.t. |
| 10 | Davide Piganzoli | Team Polti-VisitMalta | s.t. |
GC after stage 1:
| 1 | Mads Pedersen | Lidl-Trek | 3hr 36min 14sec |
| 2 | Wout van Aert | Team Visma | Lease a Bike | @ 4sec |
| 3 | Orluis Aular | Movistar Team | 0:06 |
| 4 | Francesco Busatto | Intermarché-Wanty | 0:10 |
| 5 | Tom Pidcock | Q36.5 Pro Cycling Team | s.t. |
| 6 | Diego Ulissi | XDS Astana Team | s.t. |
| 7 | Richard Carapaz | EF Education-EasyPost | s.t. |
| 8 | Max Poole | Team Picnic PostNL | s.t. |
| 9 | Nicola Conci | XDS Astana Team | s.t. |
| 10 | Davide Piganzoli | Team Polti-VisitMalta | s.t. |