
Saturday, May 31: Stage 20, Verrès - Sestrière (Vialattea), 205 km
Stage 20 map & profile | Stage 20 photos

Chris Harper wins stage 20. Sirotti photo
Les Woodland's book Cycling Heroes: The Golden Years is available in the print, Kindle eBook & audiobook versions. To get your copy, just click on the Amazon link on the right.
Weather at the finish city of Sestrière at 2:30 PM, local time: 19C (67F), partly cloudy, with the wind from the east-southeast at 11 km/hr (6 mph). There is a 30% chance of rain.
The stage: The stage starts flat until the Canavese region, then a series of increasingly tough climbs lead into the Valli di Lanzo. After Viù, the Colle del Lys climb begins. A descent brings riders into the Dora Riparia Valley to Susa, where the Colle delle Finestre (this year’s Cima Coppi) climb begins. The Finestre climb averages a consistent 9.2%, with a 14% ramp in Meana di Susa. The first 9 km are paved; the final 9 km are gravel. There are 29 switchbacks in less than 4 km (45 total). The descent to Pian dell’Alpe is narrow and exposed. The final climb to Sestriere on the SS23 is steady and manageable.
Final kilometers: Final kilometers are all on the SS23, a steady climb at about 5% on a wide, well-paved road. Final straight: 400 m on 6.5-metre-wide asphalt.
The race: Here's the stage 20 report from stage winner Chris Harper's Team Jayco-AlUla.
Australian Chris Harper claimed his maiden Grand Tour stage victory with a long-range and daring solo attack over the Colle delle Finestre on stage 20 of the Giro d’Italia.
The man from Adelaide has been in and amongst the breakaways throughout the brutal final week of racing in Italy and the 30-year-old was finally rewarded for his efforts with his first victory in almost six years.
A large group went clear in the opening kilometres of racing with Harper making it across to the front embedded in one of the several early attacking moves. The gap back to the peloton soon grew out to over eight minutes, with the stage victory seemingly up for grabs for those in the breakaway as the GC contenders marked each other.
The lower slopes of the ominous Colle delle Finestre soon caused damage in the front group, but Harper remained unfazed as he followed the accelerations before making a move of his own with 15km of the climb remaining.
Only one rider could follow his increase in pace, but by the summit the Team Jayco AlUla man was solo, claiming the Cima Coppi prize for his efforts. With just the descent and the climb to Sestrière standing in the way of a memorable stage win, the laidback Aussie kept his cool while the battle for the Maglia Rosa raged on behind him.
In the end Harper was able to enjoy his moment in the spotlight, crossing the line with a smile on his face and his arms in the air after delivering Team Jayco AlUla their second stage win of this year’s Giro d’Italia.
Chris Harper:
“I definitely wasn’t expecting it. I wasn’t sure how it was going to go today as I was up the road yesterday and I didn’t really have the legs. I also thought maybe today would be a big battle with the GC guys and the break wouldn’t arrive anyway. I got away with a big group, and I just tried to be smart. I gave it 100 percent, and I hoped I could hold on.
"It means a lot (to win on the Finestre stage). It’s such a famous climb and I’m pretty proud to win the stage here. It’s a super challenging stage and I’m really happy I could pull it off.
"I felt quite good at the start [of the Giro d’Italia], but unfortunately on that second rest day in the afternoon I started to feel pretty bad and ended up on antibiotics. I decided to try and recover as much as possible once I was off GC, and then the focus was these last mountain stages to try and get into a break and see if I could get a result.
"I asked the car one last time how big the gap was, I knew Simon [Yates] was coming from behind, I wasn’t super confident. Once I got to about 1.5km to go, I knew I could hold on and it was a bit of a relief.”
David McPartland (Sport Director):
"Stage 20 of the Giro, it was always our plan to have one of our three climbers in the break and the boys put Chris in there, and fortunately he was on the super day; he got better and better.
"He's had a bit of illness during the middle part of the Giro and we had to scrap the plans for the GC and move on to chasing stages. It’s quite emotional actually because he's been through a lot of hard times lately with injuries etc and he's absolutely worked his butt off to get back to top form and he deserves this just as much as anyone."
Complete results:
205 kilometers raced at an average speed of 37.559 km/hr
| 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 |
| 11 | Derek Gee | Israel-Premier Tech | s.t. |
| 12 | Damiano Caruso | Bahrain Victorious | s.t. |
| 13 | Richard Carapaz | EF Education-EasyPost | 7:14 |
| 14 | Brandon McNulty | UAE Team Emirates-XRG | 7:17 |
| 15 | Wout van Aert | Team Visma | Lease a Bike | 8:02 |
| 16 | Michael Storer | Tudor Pro Cycling Team | 8:30 |
| 17 | Rafal Majka | UAE Team Emirates-XRG | s.t. |
| 18 | Sylvain Moniquet | Cofidis | 8:58 |
| 19 | Andrea Vendrame | Decathlon AG2R La Mondiale | 9:06 |
| 20 | Adam Yates | UAE Team Emirates-XRG | 9:06 |
| 21 | Kevin Geniets | Groupama-FDJ | 9:21 |
| 22 | Einer Rubio | Movistar Team | 9:40 |
| 23 | Timo Kielich | Alpecin-Deceuninck | 9:49 |
| 24 | Egan Bernal | INEOS Grenadiers | 10:43 |
| 25 | Romain Bardet | Team Picnic PostNL | s.t. |
| 26 | Pello Bilbao | Bahrain Victorious | 10:50 |
| 27 | Jefferson Cepeda | Movistar Team | 11:02 |
| 28 | Chris Hamilton | Team Picnic PostNL | 11:11 |
| 29 | Lorenzo Fortunato | XDS Astana Team | 13:31 |
| 30 | Florian Stork | Tudor Pro Cycling Team | s.t. |
| 31 | Jimmy Janssens | Alpecin-Deceuninck | 13:42 |
| 32 | Nicolas Prodhomme | Decathlon AG2R La Mondiale | 14:36 |
| 33 | James Knox | Soudal Quick-Step | s.t. |
| 34 | Louis Meintjes | Intermarché-Wanty | s.t. |
| 35 | Gijs Leemreize | Team Picnic PostNL | s.t. |
| 36 | Davide Piganzoli | Team Polti-VisitMalta | s.t. |
| 37 | Quentin Pacher | Groupama-FDJ | s.t. |
| 38 | Kevin Colleoni | Intermarché-Wanty | 18:23 |
| 39 | Sergio Samitier | Cofidis | 19:39 |
| 40 | Edoardo Zambanini | Bahrain Victorious | s.t. |
| 41 | Steven Kruijswijk | Team Visma | Lease a Bike | s.t. |
| 42 | Tom Pidcock | Q36.5 Pro Cycling Team | s.t. |
| 43 | Mirco Maestri | Team Polti-VisitMalta | s.t. |
| 44 | Embret Svestad-Bårdseng | Arkea-B&B Hotels | 20:13 |
| 45 | Quinten Hermans | Alpecin-Deceuninck | 20:50 |
| 46 | Wout Poels | XDS Astana Team | 21:21 |
| 47 | Diego Ulissi | XDS Astana Team | s.t. |
| 48 | Christian Scaroni | XDS Astana Team | s.t. |
| 49 | Fausto Masnada | XDS Astana Team | s.t. |
| 50 | Daniel Martinez | Red Bull-BORA-hansgrohe | s.t. |
| 51 | Yannis Voisard | Tudor Pro Cycling Team | s.t. |
| 52 | Martin Tjøtta | Arkea-B&B Hotels | s.t. |
| 53 | Enzo Paleni | Groupama-FDJ | 21:40 |
| 54 | Kim Heiduk | INEOS Grenadiers | 21:41 |
| 55 | Thymen Arensman | INEOS Grenadiers | s.t. |
| 56 | Simon Clarke | Israel-Premier Tech | 22:59 |
| 57 | Giovanni Aleotti | Red Bull-BORA-hansgrohe | 24:31 |
| 58 | Fran Miholjevic | Bahrain Victorious | 26:12 |
| 59 | Bart Lemmen | Team Visma | Lease a Bike | 27:13 |
| 60 | Wilco Kelderman | Team Visma | Lease a Bike | s.t. |
| 61 | Lawrence Warbasse | Tudor Pro Cycling Team | s.t. |
| 62 | Marco Frigo | Israel-Premier Tech | s.t. |
| 63 | Manuele Tarozzi | VF Group-Bardiani CSF-Faizanè | s.t. |
| 64 | Igor Arrieta | UAE Team Emirates-XRG | 27:17 |
| 65 | Lorenzo Milesi | Movistar Team | 30:38 |
| 66 | Alessandro Tonelli | Team Polti-VisitMalta | s.t. |
| 67 | Nairo Quintana | Movistar Team | s.t. |
| 68 | Jonathan Castroviejo | INEOS Grenadiers | s.t. |
| 69 | Simone Petilli | Intermarché-Wanty | s.t. |
| 70 | Nicola Conci | XDS Astana Team | s.t. |
| 71 | Filippo Baroncini | UAE Team Emirates-XRG | 31:50 |
| 72 | Mikkel Honore | EF Education-EasyPost | s.t. |
| 73 | Lorenzo Germani | Groupama-FDJ | s.t. |
| 74 | Luca Covili | VF Group-Bardiani CSF-Faizanè | s.t. |
| 75 | James Shaw | EF Education-EasyPost | s.t. |
| 76 | Jan Maas | Cofidis | 32:13 |
| 77 | Jon Barrenetxea | Movistar Team | s.t. |
| 78 | Damien Howson | Q36.5 Pro Cycling Team | s.t. |
| 79 | Mark Donovan | Q36.5 Pro Cycling Team | s.t. |
| 80 | David Gaudu | Groupama-FDJ | 32:44 |
| 81 | Jacopo Mosca | Lidl-Trek | 33:41 |
| 82 | Mads Pedersen | Lidl-Trek | s.t. |
| 83 | Mathias Vacek | Lidl-Trek | s.t. |
| 84 | Nick Schultz | Israel-Premier Tech | s.t. |
| 85 | Francesco Busatto | Intermarché-Wanty | s.t. |
| 86 | Mattia Cattaneo | Soudal Quick-Step | s.t. |
| 87 | Ethan Hayter | Soudal Quick-Step | s.t. |
| 88 | Antonio Tiberi | Bahrain Victorious | 34:06 |
| 89 | Patrick Konrad | Lidl-Trek | s.t. |
| 90 | Dorian Godon | Decathlon AG2R La Mondiale | 34:50 |
| 91 | Jan Tratnik | Red Bull-BORA-hansgrohe | 34:55 |
| 92 | Dries De Bondt | Decathlon AG2R La Mondiale | 37:19 |
| 93 | Alexander Cepeda | EF Education-EasyPost | 37:32 |
| 94 | Clément Davy | Groupama-FDJ | 38:41 |
| 95 | Nicolas Debeaumarché | Cofidis | s.t. |
| 96 | Felix Engelhardt | Team Jayco-AlUla | s.t. |
| 97 | Filippo Zana | Team Jayco-AlUla | s.t. |
| 98 | Michael Hepburn | Team Jayco-AlUla | s.t. |
| 99 | Hugo Houle | Israel-Premier Tech | s.t. |
| 100 | Jakob Fuglsang | Israel-Premier Tech | s.t. |
| 101 | Mattia Bais | Team Polti-VisitMalta | s.t. |
| 102 | Davide Bais | Team Polti-VisitMalta | s.t. |
| 103 | Davide Formolo | Movistar Team | s.t. |
| 104 | Orluis Aular | Movistar Team | s.t. |
| 105 | Darren Rafferty | EF Education-EasyPost | s.t. |
| 106 | Stefano Oldani | Cofidis | s.t. |
| 107 | Davide De Pretto | Team Jayco-AlUla | s.t. |
| 108 | Lucas Hamilton | INEOS Grenadiers | s.t. |
| 109 | Niklas Märkl | Team Picnic PostNL | s.t. |
| 110 | Dylan van Baarle | Team Visma | Lease a Bike | s.t. |
| 111 | Corbin Strong | Israel-Premier Tech | s.t. |
| 112 | Stan Dewulf | Decathlon AG2R La Mondiale | s.t. |
| 113 | Paul Double | Team Jayco-AlUla | s.t. |
| 114 | Owain Doull | EF Education-EasyPost | s.t. |
| 115 | Georg Steinhauser | EF Education-EasyPost | 38:47 |
| 116 | Josef Cerný | Soudal Quick-Step | s.t. |
| 117 | Jonathan Lastra | Cofidis | 39:06 |
| 118 | Anthony Perez | Cofidis | s.t. |
| 119 | Rick Pluimers | Tudor Pro Cycling Team | 39:28 |
| 120 | Ben Turner | INEOS Grenadiers | 39:42 |
| 121 | Milan Vader | Q36.5 Pro Cycling Team | 40:05 |
| 122 | Emils Liepins | Q36.5 Pro Cycling Team | s.t. |
| 123 | Xabier Azparren | Q36.5 Pro Cycling Team | s.t. |
| 124 | Edward Planckaert | Alpecin-Deceuninck | 40:10 |
| 125 | Kaden Groves | Alpecin-Deceuninck | s.t. |
| 126 | Edoardo Affini | Team Visma | Lease a Bike | 41:08 |
| 127 | Daan Hoole | Lidl-Trek | s.t. |
| 128 | Enrico Zanoncello | VF Group-Bardiani CSF-Faizanè | s.t. |
| 129 | Filippo Fiorelli | VF Group-Bardiani CSF-Faizanè | s.t. |
| 130 | Luca Mozzato | Arkea-B&B Hotels | s.t. |
| 131 | Giosue Epis | Arkea-B&B Hotels | s.t. |
| 132 | Sven Erik Bystrøm | Groupama-FDJ | s.t. |
| 133 | Laurens Huys | Arkea-B&B Hotels | s.t. |
| 134 | Max Kanter | XDS Astana Team | s.t. |
| 135 | Francisco Muñoz | Team Polti-VisitMalta | s.t. |
| 136 | Gerben Thijssen | Intermarché-Wanty | s.t. |
| 137 | Gijs Van Hoecke | Intermarché-Wanty | s.t. |
| 138 | Giovanni Lonardi | Team Polti-VisitMalta | s.t. |
| 139 | Anton Kuzmin | XDS Astana Team | s.t. |
| 140 | Matevz Govekar | Bahrain Victorious | s.t. |
| 141 | Nico Denz | Red Bull-BORA-hansgrohe | 41:46 |
| 142 | Kasper Asgreen | EF Education-EasyPost | s.t. |
| 143 | Sam Bennett | Decathlon AG2R La Mondiale | 41:59 |
| 144 | Tord Gudmestad | Decathlon AG2R La Mondiale | s.t. |
| 145 | Andrea Pietrobon | Team Polti-VisitMalta | 42:21 |
| 146 | Filippo Magli | VF Group-Bardiani CSF-Faizanè | s.t. |
| 147 | Gianni Moscon | Red Bull-BORA-hansgrohe | 42:56 |
| 148 | Albert Torres | Movistar Team | s.t. |
| 149 | Jensen Plowright | Alpecin-Deceuninck | s.t. |
| 150 | Fabio Van den Bossche | Alpecin-Deceuninck | s.t. |
| 151 | Luke Lamperti | Soudal Quick-Step | 44:01 |
| 152 | Maikel Zijlaard | Tudor Pro Cycling Team | s.t. |
| 153 | Alexander Krieger | Tudor Pro Cycling Team | s.t. |
| 154 | Simon Guglielmi | Arkea-B&B Hotels | 44:52 |
| 155 | Alex Edmondson | Team Picnic PostNL | 44:55 |
| 156 | Casper van Uden | Team Picnic PostNL | s.t. |
| 157 | Taco van der Hoorn | Intermarché-Wanty | s.t. |
| 158 | Olav Kooij | Team Visma | Lease a Bike | s.t. |
| 159 | Matteo Moschetti | Q36.5 Pro Cycling Team | s.t. |
GC after stage 20:
3,300.3 kilometers raced so far at an average speed of 41.612 km/hr
| 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 |
| 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 | 35:25 |
| 16 | Tom Pidcock | Q36.5 Pro Cycling Team | 43:33 |
| 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:12:46 |
| 24 | Lorenzo Fortunato | XDS Astana Team | 1:22:09 |
| 25 | Nairo Quintana | Movistar Team | 1:23:09 |
| 26 | Romain Bardet | Team Picnic PostNL | 1:23:15 |
| 27 | Edoardo Zambanini | Bahrain Victorious | 1:25:59 |
| 28 | Marco Frigo | Israel-Premier Tech | 1:32:20 |
| 29 | Thymen Arensman | INEOS Grenadiers | 1:34:54 |
| 30 | Pello Bilbao | Bahrain Victorious | 1:51:13 |
| 31 | Gianmarco Garofoli | Soudal Quick-Step | 1:53:53 |
| 32 | Jefferson Cepeda | Movistar Team | 1:56:11 |
| 33 | Yannis Voisard | Tudor Pro Cycling Team | 1:56:21 |
| 34 | Kevin Geniets | Groupama-FDJ | 1:56:33 |
| 35 | Andrea Vendrame | Decathlon AG2R La Mondiale | 1:59:53 |
| 36 | Wilco Kelderman | Team Visma | Lease a Bike | 2:00:11 |
| 37 | Igor Arrieta | UAE Team Emirates-XRG | 2:00:15 |
| 38 | Steven Kruijswijk | Team Visma | Lease a Bike | 2:04:24 |
| 39 | Rémy Rochas | Groupama-FDJ | 2:09:52 |
| 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:19:58 |
| 43 | Gijs Leemreize | Team Picnic PostNL | 2:20:11 |
| 44 | Chris Hamilton | Team Picnic PostNL | 2:21:50 |
| 45 | Damien Howson | Q36.5 Pro Cycling Team | 2:22:41 |
| 46 | Mattia Cattaneo | Soudal Quick-Step | 2:23:20 |
| 47 | Davide Formolo | Movistar Team | 2:23:27 |
| 48 | Alessandro Tonelli | Team Polti-VisitMalta | 2:23:48 |
| 49 | Alexander Cepeda | EF Education-EasyPost | 2:25:20 |
| 50 | Martin Tjøtta | Arkea-B&B Hotels | 2:25:30 |
| 51 | Wout Poels | XDS Astana Team | 2:25:36 |
| 52 | Sergio Samitier | Cofidis | 2:28:09 |
| 53 | Daniel Martinez | Red Bull-BORA-hansgrohe | 2:29:40 |
| 54 | Carlos Verona | Lidl-Trek | 2:30:20 |
| 55 | Mark Donovan | Q36.5 Pro Cycling Team | 2:37:39 |
| 56 | Nicola Conci | XDS Astana Team | 2:39:49 |
| 57 | Mathias Vacek | Lidl-Trek | 2:42:10 |
| 58 | Filippo Zana | Team Jayco-AlUla | 2:43:24 |
| 59 | Giovanni Aleotti | Red Bull-BORA-hansgrohe | 2:44:16 |
| 60 | Jonathan Castroviejo | INEOS Grenadiers | 2:44:39 |
| 61 | Simone Petilli | Intermarché-Wanty | 2:46:21 |
| 62 | Hugo Houle | Israel-Premier Tech | 2:52:09 |
| 63 | Lorenzo Germani | Groupama-FDJ | 2:54:25 |
| 64 | Quentin Pacher | Groupama-FDJ | 2:59:03 |
| 65 | David Gaudu | Groupama-FDJ | 3:03:10 |
| 66 | Jonathan Lastra | Cofidis | 3:04:36 |
| 67 | Stefano Oldani | Cofidis | 3:07:43 |
| 68 | Lawrence Warbasse | Tudor Pro Cycling Team | 3:10:00 |
| 69 | Luca Covili | VF Group-Bardiani CSF-Faizanè | 3:10:35 |
| 70 | Mattia Bais | Team Polti-VisitMalta | 3:11:07 |
| 71 | Sylvain Moniquet | Cofidis | 3:15:13 |
| 72 | Wout van Aert | Team Visma | Lease a Bike | 3:16:27 |
| 73 | Patrick Konrad | Lidl-Trek | 3:16:52 |
| 74 | Martin Marcellusi | VF Group-Bardiani CSF-Faizanè | 3:18:09 |
| 75 | Georg Steinhauser | EF Education-EasyPost | 3:22:54 |
| 76 | James Shaw | EF Education-EasyPost | 3:25:43 |
| 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:33:33 |
| 80 | Milan Vader | Q36.5 Pro Cycling Team | 3:34:38 |
| 81 | Jakob Fuglsang | Israel-Premier Tech | 3:35:20 |
| 82 | Felix Engelhardt | Team Jayco-AlUla | 3:37:17 |
| 83 | Jan Tratnik | Red Bull-BORA-hansgrohe | 3:37:31 |
| 84 | Quinten Hermans | Alpecin-Deceuninck | 3:40:12 |
| 85 | Dorian Godon | Decathlon AG2R La Mondiale | 3:40:14 |
| 86 | Timo Kielich | Alpecin-Deceuninck | 3:45:08 |
| 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:00:44 |
| 92 | Jon Barrenetxea | Movistar Team | 4:02:34 |
| 93 | Simon Guglielmi | Arkea-B&B Hotels | 4:02:45 |
| 94 | Mirco Maestri | Team Polti-VisitMalta | 4:02:46 |
| 95 | Dylan van Baarle | Team Visma | Lease a Bike | 4:06:25 |
| 96 | Corbin Strong | Israel-Premier Tech | 4:07:26 |
| 97 | Davide Bais | Team Polti-VisitMalta | 4:15:20 |
| 98 | Fabio Van den Bossche | Alpecin-Deceuninck | 4:16:17 |
| 99 | Paul Double | Team Jayco-AlUla | 4:16:30 |
| 100 | Francesco Busatto | Intermarché-Wanty | 4:17:40 |
| 101 | Alessandro Verre | Arkea-B&B Hotels | 4:21:34 |
| 102 | Orluis Aular | Movistar Team | 4:22:20 |
| 103 | Edward Planckaert | Alpecin-Deceuninck | 4:22:44 |
| 104 | Lucas Hamilton | INEOS Grenadiers | 4:24:28 |
| 105 | Nick Schultz | Israel-Premier Tech | 4:29:38 |
| 106 | Kevin Colleoni | Intermarché-Wanty | 4:30:00 |
| 107 | Rick Pluimers | Tudor Pro Cycling Team | 4:30:38 |
| 108 | Kaden Groves | Alpecin-Deceuninck | 4:31:40 |
| 109 | Laurens Huys | Arkea-B&B Hotels | 4:34:06 |
| 110 | Owain Doull | EF Education-EasyPost | 4:37:02 |
| 111 | Enzo Paleni | Groupama-FDJ | 4:38:05 |
| 112 | Stan Dewulf | Decathlon AG2R La Mondiale | 4:40:33 |
| 113 | Fran Miholjevic | Bahrain Victorious | 4:45:16 |
| 114 | Simon Clarke | Israel-Premier Tech | 4:45:59 |
| 115 | Kim Heiduk | INEOS Grenadiers | 4:46:33 |
| 116 | Kasper Asgreen | EF Education-EasyPost | 4:47:04 |
| 117 | Filippo Magli | VF Group-Bardiani CSF-Faizanè | 4:48:45 |
| 118 | Jimmy Janssens | Alpecin-Deceuninck | 4:50:32 |
| 119 | Daan Hoole | Lidl-Trek | 4:56:19 |
| 120 | Ben Turner | INEOS Grenadiers | 5:03:14 |
| 121 | Nico Denz | Red Bull-BORA-hansgrohe | 5:04:06 |
| 122 | Gianni Moscon | Red Bull-BORA-hansgrohe | 5:05:00 |
| 123 | Anthony Perez | Cofidis | 5:05:23 |
| 124 | Max Kanter | XDS Astana Team | 5:05:26 |
| 125 | Xabier Azparren | Q36.5 Pro Cycling Team | 5:08:41 |
| 126 | Jacopo Mosca | Lidl-Trek | 5:09:58 |
| 127 | Albert Torres | Movistar Team | 5:10:24 |
| 128 | Dries De Bondt | Decathlon AG2R La Mondiale | 5:12:10 |
| 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:24:51 |
| 133 | Edoardo Affini | Team Visma | Lease a Bike | 5:29:17 |
| 134 | Tord Gudmestad | Decathlon AG2R La Mondiale | 5:30:00 |
| 135 | Giosue Epis | Arkea-B&B Hotels | 5:31:00 |
| 136 | Ethan Hayter | Soudal Quick-Step | 5:31:39 |
| 137 | Andrea Pietrobon | Team Polti-VisitMalta | 5:31:50 |
| 138 | Clément Davy | Groupama-FDJ | 5:32:29 |
| 139 | Jan Maas | Cofidis | 5:33:15 |
| 140 | Luca Mozzato | Arkea-B&B Hotels | 5:33:26 |
| 141 | Nicolas Debeaumarché | Cofidis | 5:33:49 |
| 142 | Michael Hepburn | Team Jayco-AlUla | 5:37:01 |
| 143 | Matevz Govekar | Bahrain Victorious | 5:38:24 |
| 144 | Anton Kuzmin | XDS Astana Team | 5:40:22 |
| 145 | Francisco Muñoz | Team Polti-VisitMalta | 5:41:19 |
| 146 | Sam Bennett | Decathlon AG2R La Mondiale | 5:41:25 |
| 147 | Luke Lamperti | Soudal Quick-Step | 5:41:38 |
| 148 | Alex Edmondson | Team Picnic PostNL | 5:42:17 |
| 149 | Olav Kooij | Team Visma | Lease a Bike | 5:45:47 |
| 150 | Casper van Uden | Team Picnic PostNL | 5:48:34 |
| 151 | Enrico Zanoncello | VF Group-Bardiani CSF-Faizanè | 5:51:33 |
| 152 | Gijs Van Hoecke | Intermarché-Wanty | 5:55:21 |
| 153 | Matteo Moschetti | Q36.5 Pro Cycling Team | 5:55:39 |
| 154 | Maikel Zijlaard | Tudor Pro Cycling Team | 5:56:04 |
| 155 | Taco van der Hoorn | Intermarché-Wanty | 5:56:29 |
| 156 | Niklas Märkl | Team Picnic PostNL | 5:59:46 |
| 157 | Gerben Thijssen | Intermarché-Wanty | 6:04:31 |
| 158 | Jensen Plowright | Alpecin-Deceuninck | 6:05:44 |
| 159 | Alexander Krieger | Tudor Pro Cycling Team | 6:23:10 |
Stage 20 map & profile:

Stage 20 map

Stage 20 profile

Here's a detail profile of the Colle delle Finestre
Stage 20 photos: As it happened | By Photoreporter Sirotti
Stage 20 as it happened:

GC leader Isaac del Toro before the stage start. RCS photo

Stage 20 gets rolling. RCS photo

About km 115: Dense tree cover on the Colle del Lys. RCS Photo

The peloton about to hit the Colle delle Fenestre, which should decide the 2025 Giro d'Italia.

Wow! The GC top three (Carapaz, del Toro & Yates) duking it out on the Finestre.

On the Colle delle Finestre Simon Yates attacks Richard Carapaz & Isaac del Toro. Near the summit he was 1min 40sec ahead of Carapaz & del Toro and I believe the virtual Maglia Rosa.

Brilliant! Simon Yates bridges up to teammate Wout van Aert, who had gone off the front earlier, probably in anticipation of just this move. Del Toro is two minutes back and chasing with little determination.

Isaac del Toro & Richard Carapaz on the gravel section of the Finestre climb. Carapaz tried to get del Toro to work with him in an active chase of the rapidly escaping Simon Yates, but del Toro was content to ride negatively, only marking Carapaz when he accelerated. His reward for this will probably be the privilege of handing the Maglia Rosa over to Yates.

10 kilometers to go. Simon Yates is alone and five and a half minutes ahead of Isaac del Toro and Richard Carapaz. He has a pink jersey waiting for him when he finishes the stage. RCS photo

Chris Harper wins stage 20.

Simon Yates' third-place finish is more than good enough to make him the new race leader and barring castrophe, winner of the 2025 Giro d'Italia.
Stage 20 photos by Fotoreporter Sirotti:

A beautiful day in the mountains.

The day's break

Chris Harper wins the stage.

Alessandro Verre finishes second.

Simon Yates finishes third, good enough to take over the Maglia Rosa.

Gianmarco Garofoli was fourth

Rémy Rochas was fifth

Isaac del Toro's last moments in pink. He finished ninth, at 7 minutes, 10 seconds.

Richard Carapaz finsihed 13th, moving him down to third in the GC.

Stage winner Chris Harper

Barring catastrophe in stage 21, Simon Yates has won the 2025 Giro d'Italia