
Wednesday, July 23: Stage 17, Bollène - Valence, 160.4 km
Stage 17 map & profile | Stage 17 photos

A soggy, smiling Jonathan Milan wins stage 17. ASO 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.
Rated ascents:
Weather at the finish city of Valence at 2:05 PM, local time: 24C (76F), rain, with the wind from the east at 8 km/hr (5 mph). The rain is forecast to continue through the afternoon, though dropping to 40% for a short while at 4:00 PM.
The stage: Tour Boss Christian Prudhomme writes: There’s no such thing as an absolutely flat stage on the roads of the Vaucluse and Drôme, but there’s definitely an opportunity here for the sprinters and that will mean the breakaway riders won’t get much room for maneuver. If the wind starts to blow, as is often the case in this area, there could be a dramatic twist if there’s an attempt to create echelons. There’ll be real tension at every change of direction over the final 50 kilometers.
The race: Danny van Poppel (Red Bull-BORA-hansgrohe) did not start. On social media he posted: "I will leave the Tour de France, but it’s good news. I became a father a few hours ago and I am looking forward to going home. It’s sad to leave the team behind, because we are racing very well - but I wish the best of luck to the guys!"
Uno-X Mobility rider Tobias Johannesson did start. He had abdominal pains at the end of Tuesday's stage and was taken to the hospital. Tests there "revealed no abnormalities".
164 riders began stage 17 at 1:48 PM.
Here's the race organizer's stage 17 summary:
Sprinters saw stage 17 as their last clear chance in the 2025 Tour de France - and Jonathan Milan (Lidl-Trek) didn’t let his opportunity slip away! Dropped early in the stage, the Italian powerhouse survived the climbs as well as a rough finale to take his second win in his debut Tour and tighten his grip on the green jersey, with only four days remaining before Paris. Jordi Meeus (Red Bull-Bora-Hansgrohe) and Tobias Lund Andresen (Picnic PostNL) complete the podium, while the likes of Tim Merlier (Soudal Quick-Step) and Biniam Girmay (Intermarché-Wanty) were affected by a crash as they entered the final kilometre. Tadej Pogacar (UAE Team Emirates) safely navigated the stage to claim his 50th Maillot Jaune on the eve of a major battle en route to the Col de la Loze.
Ther race:
Another chance for the sprinters? Maybe the last one? In between the summit finishes at Mont Ventoux and Col de la Loze, stage 17 takes the riders from Bollène to Valence, with a 160.4-km course featuring 1,650 metres of elevation. The last categorised climb, Col de Tartaiguille (cat. 4) is more than 40 kilometres away from the finish. But attackers dream of getting the better of tired sprint teams.

The start line in Bollène
Abrahamsen attacks, Simmons controls
A 164-man peloton set off from Bollène without Danny van Poppel (Red Bull-Bora-Hansgrohe), heading home as his partner gave birth a few hours earlier. Meanwhile, Jonas Abrahamsen (Uno-X Mobility) shows his intention to make yet another breakaway. Quinn Simmons (Lidl-Trek) is immediately in action, with the task to prevent the formation of too strong a group at the front.
At km 5, Abrahamsen has opened up a gap of 30 seconds with Vincenzo Albanese (EF Education-EasyPost), Quentin Pacher (Groupama-FDJ) and Mathieu Burgaudeau (Total Energies). Many more riders want to join them at the front but Simmons prevents them from doing so. Most notably, Axel Laurance (Ineos Grenadiers) gives up on his chase and is reeled in as the gap hits its maximum for the day: 2’50’’ at km 23.
Skirmish at Col du Pertuis
Abrahamsen leads the way through the intermediate sprint at Roche-Saint-Secret-Béconne (km 47.9), where the breakaway maintains a 2'00" advantage.
The scripts change when Ineos Grenadiers begins to pull the peloton on the approach to Col du Pertuis (cat. 4, summit at km 66.3), reducing the gap to just 35" at the top and opening up the race on two fronts.
On one side, we can see multiple attacks controlled again by Simmons. On the other, Jonathan Milan (Lidl-Trek) and Tim Merlier (Soudal Quick-Step) are dropped along with other sprinters such as Dylan Groenwegen (Jayco-AlUla) and Arnaud Démare (Arkéa-B&B Hotels).
Van Aert tries his luck
Despite the efforts of teams such as Alberto Dainese's Tudor, Kaden Groves' Alpecin-Deceuninck and Biniam Girmay's Intermarché-Wanty, who had made it over the pass, the dropped sprinters manage to catch up with the peloton, well supported by their teammates, at kilometre 85 of the stage. At that point, the breakaway's lead has been reduced to 30 seconds.

The day's 4-man break with a bit more than 30 km to go. ASO photo
The situation settles in the bunch and the gap gets back up to 1’10’’ for the last 50 kilometres. The riders quickly face the climb of Col de Tartaiguille (cat. 4, km 117). Wout Van Aert (Visma-Lease a Bike) attacks towards the summit and gets as close as 25 seconds behind Albanese, Pacher and Burgaudeau. But he can’t bridge the remaining gap and is caught by the bunch after 12 kilometres of pursuit.
Milan survives
The tension increases in the bunch as the rain starts falling. Sprint teams need to put the hammer down to get back to the attackers. With 12 km to go, the gap is down to 20’’ and Abrahamsen goes solo. He’s eventually caught by the bunch with 4 kilometres to go.

Escapee Jonas Abrahamsen is caught with 4.4 km to go, setting things up for a sprint.
As the sprinters gear for a furious battle, a crash happens in the front positions with one kilometre to go. Eight riders sprint for the win. And Milan proves to be the strongest of them, claiming his second stage win in his Tour debut, ahead of Jordi Meeus (Red Bull-Bora-Hansgrohe) and Tobias Lund Andresen (Picnic PostNL).
Complete results:
160.4 kilometers raced at an average speed of 46.832 km/hr
| 1 | Jonathan Milan | Lidl-Trek | 3hr 25min 30sec |
| 2 | Jordi Meeus | Red Bull-BORA-hansgrohe | s.t. |
| 3 | Tobias Lund Andresen | Team Picnic PostNL | s.t. |
| 4 | Arnaud De Lie | Lotto | s.t. |
| 5 | Davide Ballerini | XDS Astana Team | s.t. |
| 6 | Alberto Dainese | Tudor Pro Cycling Team | s.t. |
| 7 | Paul Penhoët | Groupama-FDJ | s.t. |
| 8 | Yevgeniy Fedorov | XDS Astana Team | s.t. |
| 9 | Clément Russo | Groupama-FDJ | @ 6sec |
| 10 | Jasper Stuyven | Lidl-Trek | 0:09 |
| 11 | Brent Van Moer | Lotto | s.t. |
| 12 | Phil Bauhaus | Bahrain Victorious | 0:15 |
| 13 | Jarrad Drizners | Lotto | 0:22 |
| 14 | Dylan Groenewegen | Team Jayco-AlUla | 0:33 |
| 15 | Mike Teunissen | XDS Astana Team | s.t. |
| 16 | Alexis Renard | Cofidis | 0:37 |
| 17 | Vito Braet | Intermarché-Wanty | 0:43 |
| 18 | Clément Venturini | Arkea-B&B Hotels | 0:46 |
| 19 | Mick van Dijke | Red Bull-BORA-hansgrohe | 0:55 |
| 20 | Kaden Groves | Alpecin-Deceuninck | s.t. |
| 21 | Bastien Tronchon | Decathlon AG2R La Mondiale | s.t. |
| 22 | Edward Theuns | Lidl-Trek | s.t. |
| 23 | Tobias Halland Johannessen | Uno-X Mobility | s.t. |
| 24 | Fred Wright | Bahrain Victorious | 1:06 |
| 25 | Tim Merlier | Soudal Quick-Step | 1:09 |
| 26 | Jonas Rickaert | Alpecin-Deceuninck | s.t. |
| 27 | Tadej Pogacar | UAE Team Emirates-XRG | s.t. |
| 28 | Oliver Naesen | Decathlon AG2R La Mondiale | s.t. |
| 29 | Felix Gall | Decathlon AG2R La Mondiale | s.t. |
| 30 | Tiesj Benoot | Team Visma | Lease a Bike | s.t. |
| 31 | Oscar Onley | Team Picnic PostNL | s.t. |
| 32 | Axel Laurance | INEOS Grenadiers | s.t. |
| 33 | Aurélien Paret-Peintre | Decathlon AG2R La Mondiale | s.t. |
| 34 | Jonas Vingegaard | Team Visma | Lease a Bike | s.t. |
| 35 | Sam Watson | INEOS Grenadiers | s.t. |
| 36 | Edoardo Affini | Team Visma | Lease a Bike | s.t. |
| 37 | Ben Healy | EF Education-EasyPost | s.t. |
| 38 | Florian Lipowitz | Red Bull-BORA-hansgrohe | s.t. |
| 39 | Pascal Eenkhoorn | Soudal Quick-Step | 1:18 |
| 40 | Robert Stannard | Bahrain Victorious | s.t. |
| 41 | Jordan Jegat | Team TotalEnergies | s.t. |
| 42 | Gregor Mühlberger | Movistar Team | s.t. |
| 43 | Bert Van Lerberghe | Soudal Quick-Step | s.t. |
| 44 | Warren Barguil | Team Picnic PostNL | s.t. |
| 45 | Laurence Pithie | Red Bull-BORA-hansgrohe | s.t. |
| 46 | Kévin Vauquelin | Arkea-B&B Hotels | s.t. |
| 47 | Cristian Rodriguez | Arkea-B&B Hotels | 1:30 |
| 48 | Mattéo Vercher | Team TotalEnergies | s.t. |
| 49 | Alexandre Delettre | Team TotalEnergies | s.t. |
| 50 | Anthony Turgis | Team TotalEnergies | s.t. |
| 51 | Thomas Gachignard | Team TotalEnergies | s.t. |
| 52 | Gianni Vermeersch | Alpecin-Deceuninck | s.t. |
| 53 | Clément Champoussin | XDS Astana Team | s.t. |
| 54 | Tim Wellens | UAE Team Emirates-XRG | s.t. |
| 55 | Pavel Sivakov | UAE Team Emirates-XRG | s.t. |
| 56 | Nils Politt | UAE Team Emirates-XRG | s.t. |
| 57 | Clément Berthet | Decathlon AG2R La Mondiale | s.t. |
| 58 | Elmar Reinders | Team Jayco-AlUla | s.t. |
| 59 | Guillaume Martin-Guyonnet | Groupama-FDJ | s.t. |
| 60 | Ben O'Connor | Team Jayco-AlUla | s.t. |
| 61 | Xandro Meurisse | Alpecin-Deceuninck | s.t. |
| 62 | Silvan Dillier | Alpecin-Deceuninck | s.t. |
| 63 | Kasper Asgreen | EF Education-EasyPost | s.t. |
| 64 | Jenno Berckmoes | Lotto | s.t. |
| 65 | Sébastien Grignard | Lotto | s.t. |
| 66 | Sergio Higuita | XDS Astana Team | s.t. |
| 67 | Sepp Kuss | Team Visma | Lease a Bike | s.t. |
| 68 | Mathis Le Berre | Arkea-B&B Hotels | s.t. |
| 69 | Damien Touzé | Cofidis | s.t. |
| 70 | Luka Mezgec | Team Jayco-AlUla | s.t. |
| 71 | Jhonatan Narvaez | UAE Team Emirates-XRG | 2:00 |
| 72 | Dylan Teuns | Cofidis | s.t. |
| 73 | Iván García Cortina | Movistar Team | s.t. |
| 74 | Gianni Moscon | Red Bull-BORA-hansgrohe | 2:07 |
| 75 | Arnaud Démare | Arkea-B&B Hotels | s.t. |
| 76 | Raúl García | Arkea-B&B Hotels | s.t. |
| 77 | Amaury Capiot | Arkea-B&B Hotels | 2:14 |
| 78 | Eduardo Sepulveda | Lotto | s.t. |
| 79 | Kamil Gradek | Bahrain Victorious | s.t. |
| 80 | Emanuel Buchmann | Cofidis | s.t. |
| 81 | Mathieu Burgaudeau | Team TotalEnergies | s.t. |
| 82 | Alex Baudin | EF Education-EasyPost | s.t. |
| 83 | Harry Sweeny | EF Education-EasyPost | s.t. |
| 84 | Marius Mayrhofer | Tudor Pro Cycling Team | s.t. |
| 85 | Simone Velasco | XDS Astana Team | s.t. |
| 86 | Valentin Madouas | Groupama-FDJ | s.t. |
| 87 | Romain Grégoire | Groupama-FDJ | s.t. |
| 88 | Michael Valgren | EF Education-EasyPost | s.t. |
| 89 | Pavel Bittner | Team Picnic PostNL | s.t. |
| 90 | Tim Naberman | Team Picnic PostNL | s.t. |
| 91 | Sean Flynn | Team Picnic PostNL | s.t. |
| 92 | Niklas Märkl | Team Picnic PostNL | s.t. |
| 93 | Frank van den Broek | Team Picnic PostNL | s.t. |
| 94 | Simone Consonni | Lidl-Trek | s.t. |
| 95 | Matteo Jorgenson | Team Visma | Lease a Bike | s.t. |
| 96 | Victor Campenaerts | Team Visma | Lease a Bike | s.t. |
| 97 | Primoz Roglic | Red Bull-BORA-hansgrohe | s.t. |
| 98 | Anders Halland Johannessen | Uno-X Mobility | s.t. |
| 99 | Emiel Verstrynge | Alpecin-Deceuninck | s.t. |
| 101 | Aleksandr Vlasov | Red Bull-BORA-hansgrohe | s.t. |
| 102 | Alex Aranburu | Cofidis | s.t. |
| 103 | William Barta | Movistar Team | s.t. |
| 104 | Marc Hirschi | Tudor Pro Cycling Team | 2:37 |
| 105 | Fabian Lienhard | Tudor Pro Cycling Team | s.t. |
| 107 | Marco Haller | Tudor Pro Cycling Team | s.t. |
| 108 | Ion Izagirre | Cofidis | s.t. |
| 109 | Nelson Oliveira | Movistar Team | s.t. |
| 110 | Simon Yates | Team Visma | Lease a Bike | s.t. |
| 111 | Matteo Trentin | Tudor Pro Cycling Team | s.t. |
| 112 | Julian Alaphilippe | Tudor Pro Cycling Team | s.t. |
| 113 | Neilson Powless | EF Education-EasyPost | s.t. |
| 114 | Markus Hoelgaard | Uno-X Mobility | s.t. |
| 115 | Jonas Abrahamsen | Uno-X Mobility | s.t. |
| 116 | Marc Soler | UAE Team Emirates-XRG | s.t. |
| 117 | Santiago Buitrago | Bahrain Victorious | s.t. |
| 118 | Einer Rubio | Movistar Team | s.t. |
| 119 | Ilan Van Wilder | Soudal Quick-Step | 2:49 |
| 120 | Callum Scotson | Decathlon AG2R La Mondiale | s.t. |
| 121 | Alexey Lutsenko | Israel-Premier Tech | s.t. |
| 122 | Jake Stewart | Israel-Premier Tech | s.t. |
| 123 | Magnus Cort | Uno-X Mobility | 3:01 |
| 124 | Connor Swift | INEOS Grenadiers | 3:06 |
| 125 | Geraint Thomas | INEOS Grenadiers | s.t. |
| 126 | Guillaume Boivin | Israel-Premier Tech | 3:10 |
| 127 | Krists Neilands | Israel-Premier Tech | s.t. |
| 128 | Matis Louvel | Israel-Premier Tech | s.t. |
| 129 | Pascal Ackermann | Israel-Premier Tech | s.t. |
| 130 | Joe Blackmore | Israel-Premier Tech | s.t. |
| 131 | Quentin Pacher | Groupama-FDJ | 3:15 |
| 132 | Tobias Foss | INEOS Grenadiers | 3:22 |
| 133 | Vincenzo Albanese | EF Education-EasyPost | s.t. |
| 134 | Thymen Arensman | INEOS Grenadiers | s.t. |
| 135 | Carlos Rodriguez | INEOS Grenadiers | s.t. |
| 136 | Adam Yates | UAE Team Emirates-XRG | s.t. |
| 137 | Bruno Armirail | Decathlon AG2R La Mondiale | 3:35 |
| 138 | Wout van Aert | Team Visma | Lease a Bike | s.t. |
| 139 | Michael Woods | Israel-Premier Tech | s.t. |
| 140 | Ewen Costiou | Arkea-B&B Hotels | 3:55 |
| 141 | Enric Mas | Movistar Team | 3:40 |
| 141 | Stian Fredheim | Uno-X Mobility | s.t. |
| 142 | Andreas Leknessund | Uno-X Mobility | s.t. |
| 143 | Mauro Schmid | Team Jayco-AlUla | s.t. |
| 144 | Jonas Rutsch | Intermarché-Wanty | s.t. |
| 145 | Hugo Page | Intermarché-Wanty | 4:05 |
| 146 | Laurenz Rex | Intermarché-Wanty | s.t. |
| 147 | Quinn Simmons | Lidl-Trek | 4:45 |
| 148 | Thibau Nys | Lidl-Trek | s.t. |
| 149 | Toms Skujins | Lidl-Trek | s.t. |
| 150 | Matej Mohoric | Bahrain Victorious | s.t. |
| 151 | Iván Romeo | Movistar Team | s.t. |
| 152 | Lewis Askey | Groupama-FDJ | s.t. |
| 153 | Lenny Martinez | Bahrain Victorious | s.t. |
| 154 | Michael Storer | Tudor Pro Cycling Team | s.t. |
| 155 | Pablo Castrillo | Movistar Team | s.t. |
| 156 | Harold Tejada | XDS Astana Team | s.t. |
| 157 | Max Schachmann | Soudal Quick-Step | 4:57 |
| 158 | Valentin Paret-Peintre | Soudal Quick-Step | s.t. |
| 159 | Benjamin Thomas | Cofidis | s.t. |
| 160 | Lucas Plapp | Team Jayco-AlUla | 5:16 |
| 161 | Biniam Girmay | Intermarché-Wanty | 5:24 |
| 162 | Roel van Sintmaartensdijk | Intermarché-Wanty | s.t. |
| 163 | Louis Barré | Intermarché-Wanty | s.t. |
| 164 | Cyril Barthe | Groupama-FDJ | 6:40 |
GC after stage 17:
2,717.7 kilometers raced so far at an average speed of 43.935 km/hr
| 1 | Tadej Pogacar | UAE Team Emirates-XRG | 61hr 51min 25sec |
| 2 | Jonas Vingegaard | Team Visma | Lease a Bike | @ 4min 15sec |
| 3 | Florian Lipowitz | Red Bull-BORA-hansgrohe | 9:03 |
| 4 | Oscar Onley | Team Picnic PostNL | 11:04 |
| 5 | Primoz Roglic | Red Bull-BORA-hansgrohe | 12:47 |
| 6 | Kévin Vauquelin | Arkea-B&B Hotels | 13:29 |
| 7 | Felix Gall | Decathlon AG2R La Mondiale | 14:50 |
| 8 | Tobias Halland Johannessen | Uno-X Mobility | 16:47 |
| 9 | Ben Healy | EF Education-EasyPost | 17:52 |
| 10 | Carlos Rodriguez | INEOS Grenadiers | 22:58 |
| 11 | Jordan Jegat | Team TotalEnergies | 23:19 |
| 12 | Ben O'Connor | Team Jayco-AlUla | 31:29 |
| 13 | Guillaume Martin-Guyonnet | Groupama-FDJ | 35:35 |
| 14 | Thymen Arensman | INEOS Grenadiers | 46:33 |
| 15 | Sepp Kuss | Team Visma | Lease a Bike | 48:20 |
| 16 | Jhonatan Narvaez | UAE Team Emirates-XRG | 52:55 |
| 17 | Cristian Rodriguez | Arkea-B&B Hotels | 53:45 |
| 19 | Sergio Higuita | XDS Astana Team | 55:18 |
| 20 | Enric Mas | Movistar Team | 56:15 |
| 21 | Matteo Jorgenson | Team Visma | Lease a Bike | 58:40 |
| 22 | Valentin Madouas | Groupama-FDJ | 1:04:32 |
| 23 | Warren Barguil | Team Picnic PostNL | 1:06:59 |
| 24 | Simon Yates | Team Visma | Lease a Bike | 1:08:28 |
| 25 | Gregor Mühlberger | Movistar Team | 1:11:46 |
| 26 | Adam Yates | UAE Team Emirates-XRG | 1:16:47 |
| 27 | Xandro Meurisse | Alpecin-Deceuninck | 1:18:22 |
| 28 | Callum Scotson | Decathlon AG2R La Mondiale | 1:25:25 |
| 29 | Emanuel Buchmann | Cofidis | 1:25:31 |
| 30 | Ilan Van Wilder | Soudal Quick-Step | 1:27:07 |
| 31 | Aleksandr Vlasov | Red Bull-BORA-hansgrohe | 1:29:43 |
| 32 | Victor Campenaerts | Team Visma | Lease a Bike | 1:31:52 |
| 33 | Romain Grégoire | Groupama-FDJ | 1:32:36 |
| 34 | Aurélien Paret-Peintre | Decathlon AG2R La Mondiale | 1:32:53 |
| 35 | Raúl García | Arkea-B&B Hotels | s.t. |
| 36 | Clément Berthet | Decathlon AG2R La Mondiale | 1:41:03 |
| 37 | Marc Soler | UAE Team Emirates-XRG | 1:46:24 |
| 38 | Quentin Pacher | Groupama-FDJ | 1:47:19 |
| 39 | Julian Alaphilippe | Tudor Pro Cycling Team | 1:52:48 |
| 40 | Tim Wellens | UAE Team Emirates-XRG | 1:53:11 |
| 41 | Harry Sweeny | EF Education-EasyPost | 1:53:14 |
| 42 | Simone Velasco | XDS Astana Team | 1:53:47 |
| 43 | Clément Venturini | Arkea-B&B Hotels | 1:55:06 |
| 44 | Harold Tejada | XDS Astana Team | 1:57:10 |
| 45 | Joe Blackmore | Israel-Premier Tech | 1:57:12 |
| 46 | Pascal Eenkhoorn | Soudal Quick-Step | 1:58:41 |
| 47 | Tiesj Benoot | Team Visma | Lease a Bike | 1:59:55 |
| 48 | Santiago Buitrago | Bahrain Victorious | 2:00:27 |
| 49 | Alex Baudin | EF Education-EasyPost | 2:02:42 |
| 50 | Valentin Paret-Peintre | Soudal Quick-Step | 2:05:28 |
| 51 | Quinn Simmons | Lidl-Trek | 2:05:59 |
| 52 | Mathieu Burgaudeau | Team TotalEnergies | 2:06:32 |
| 53 | Michael Woods | Israel-Premier Tech | 2:06:35 |
| 54 | Geraint Thomas | INEOS Grenadiers | 2:07:23 |
| 55 | Frank van den Broek | Team Picnic PostNL | 2:11:12 |
| 56 | Neilson Powless | EF Education-EasyPost | 2:11:29 |
| 57 | Axel Laurance | INEOS Grenadiers | 2:12:11 |
| 58 | Einer Rubio | Movistar Team | 2:13:26 |
| 59 | Alexandre Delettre | Team TotalEnergies | 2:13:57 |
| 60 | Bruno Armirail | Decathlon AG2R La Mondiale | 2:16:43 |
| 61 | Markus Hoelgaard | Uno-X Mobility | 2:18:49 |
| 62 | Andreas Leknessund | Uno-X Mobility | 2:18:57 |
| 63 | Jasper Stuyven | Lidl-Trek | 2:20:33 |
| 64 | Michael Storer | Tudor Pro Cycling Team | 2:20:41 |
| 65 | Emiel Verstrynge | Alpecin-Deceuninck | 2:23:03 |
| 66 | Thomas Gachignard | Team TotalEnergies | 2:23:10 |
| 67 | Wout van Aert | Team Visma | Lease a Bike | 2:26:10 |
| 68 | Ewen Costiou | Arkea-B&B Hotels | 2:27:00 |
| 69 | Max Schachmann | Soudal Quick-Step | 2:29:33 |
| 70 | Nelson Oliveira | Movistar Team | 2:30:33 |
| 71 | Mathis Le Berre | Arkea-B&B Hotels | 2:32:00 |
| 72 | Clément Champoussin | XDS Astana Team | 2:32:18 |
| 73 | Michael Valgren | EF Education-EasyPost | 2:33:02 |
| 74 | Jenno Berckmoes | Lotto | 2:33:39 |
| 75 | Alex Aranburu | Cofidis | 2:34:57 |
| 76 | Ion Izagirre | Cofidis | 2:36:27 |
| 77 | Pavel Sivakov | UAE Team Emirates-XRG | 2:37:44 |
| 78 | Alexey Lutsenko | Israel-Premier Tech | 2:38:03 |
| 79 | Brent Van Moer | Lotto | 2:39:44 |
| 80 | Jonas Abrahamsen | Uno-X Mobility | 2:39:54 |
| 81 | Krists Neilands | Israel-Premier Tech | 2:40:13 |
| 82 | Oliver Naesen | Decathlon AG2R La Mondiale | 2:41:33 |
| 83 | Cyril Barthe | Groupama-FDJ | 2:43:35 |
| 84 | Marius Mayrhofer | Tudor Pro Cycling Team | 2:45:02 |
| 85 | Mike Teunissen | XDS Astana Team | 2:46:14 |
| 86 | Louis Barré | Intermarché-Wanty | 2:47:31 |
| 87 | Nils Politt | UAE Team Emirates-XRG | 2:47:58 |
| 88 | Tobias Foss | INEOS Grenadiers | 2:49:39 |
| 89 | Bastien Tronchon | Decathlon AG2R La Mondiale | 2:49:41 |
| 90 | Marco Haller | Tudor Pro Cycling Team | 2:49:42 |
| 91 | Kasper Asgreen | EF Education-EasyPost | 2:51:07 |
| 92 | Laurence Pithie | Red Bull-BORA-hansgrohe | 2:51:23 |
| 93 | Toms Skujins | Lidl-Trek | 2:52:09 |
| 94 | Clément Russo | Groupama-FDJ | 2:52:15 |
| 95 | Dylan Teuns | Cofidis | 2:54:33 |
| 96 | Damien Touzé | Cofidis | 2:55:09 |
| 97 | Marc Hirschi | Tudor Pro Cycling Team | 2:55:17 |
| 98 | Lenny Martinez | Bahrain Victorious | 2:56:21 |
| 99 | Tobias Lund Andresen | Team Picnic PostNL | 2:56:34 |
| 100 | Jonas Rickaert | Alpecin-Deceuninck | 2:59:04 |
| 101 | Fred Wright | Bahrain Victorious | 2:59:17 |
| 102 | Kaden Groves | Alpecin-Deceuninck | 2:59:30 |
| 103 | Anders Halland Johannessen | Uno-X Mobility | 3:01:29 |
| 104 | Gianni Vermeersch | Alpecin-Deceuninck | 3:03:10 |
| 105 | William Barta | Movistar Team | 3:04:24 |
| 106 | Gianni Moscon | Red Bull-BORA-hansgrohe | 3:07:02 |
| 107 | Mauro Schmid | Team Jayco-AlUla | 3:08:02 |
| 108 | Iván Romeo | Movistar Team | 3:08:41 |
| 109 | Matis Louvel | Israel-Premier Tech | 3:08:55 |
| 110 | Matteo Trentin | Tudor Pro Cycling Team | 3:10:22 |
| 111 | Vincenzo Albanese | EF Education-EasyPost | 3:15:48 |
| 112 | Pablo Castrillo | Movistar Team | 3:17:43 |
| 113 | Niklas Märkl | Team Picnic PostNL | 3:17:49 |
| 114 | Connor Swift | INEOS Grenadiers | 3:19:33 |
| 115 | Paul Penhoët | Groupama-FDJ | 3:21:32 |
| 116 | Anthony Turgis | Team TotalEnergies | 3:23:24 |
| 117 | Thibau Nys | Lidl-Trek | 3:23:38 |
| 118 | Alberto Dainese | Tudor Pro Cycling Team | 3:29:40 |
| 119 | Iván García Cortina | Movistar Team | 3:30:14 |
| 120 | Edoardo Affini | Team Visma | Lease a Bike | 3:30:21 |
| 121 | Eduardo Sepulveda | Lotto | 3:32:37 |
| 122 | Robert Stannard | Bahrain Victorious | 3:32:43 |
| 123 | Jake Stewart | Israel-Premier Tech | 3:33:58 |
| 124 | Matej Mohoric | Bahrain Victorious | 3:34:06 |
| 125 | Mick van Dijke | Red Bull-BORA-hansgrohe | 3:38:09 |
| 126 | Lucas Plapp | Team Jayco-AlUla | 3:40:27 |
| 127 | Sam Watson | INEOS Grenadiers | 3:41:55 |
| 128 | Pascal Ackermann | Israel-Premier Tech | 3:42:19 |
| 129 | Tim Naberman | Team Picnic PostNL | 3:44:12 |
| 130 | Magnus Cort | Uno-X Mobility | 3:46:47 |
| 131 | Pavel Bittner | Team Picnic PostNL | 3:47:38 |
| 132 | Sean Flynn | Team Picnic PostNL | 3:48:27 |
| 133 | Jonas Rutsch | Intermarché-Wanty | 3:49:06 |
| 134 | Silvan Dillier | Alpecin-Deceuninck | 3:49:27 |
| 135 | Amaury Capiot | Arkea-B&B Hotels | 3:51:56 |
| 136 | Biniam Girmay | Intermarché-Wanty | 3:52:33 |
| 137 | Jarrad Drizners | Lotto | 3:52:34 |
| 138 | Mattéo Vercher | Team TotalEnergies | 3:52:50 |
| 139 | Arnaud De Lie | Lotto | 3:54:07 |
| 140 | Elmar Reinders | Team Jayco-AlUla | 3:56:32 |
| 141 | Lewis Askey | Groupama-FDJ | 3:58:39 |
| 142 | Vito Braet | Intermarché-Wanty | 4:00:29 |
| 143 | Laurenz Rex | Intermarché-Wanty | 4:01:19 |
| 144 | Alexis Renard | Cofidis | 4:01:21 |
| 145 | Hugo Page | Intermarché-Wanty | 4:01:47 |
| 146 | Sébastien Grignard | Lotto | 4:01:57 |
| 147 | Jonathan Milan | Lidl-Trek | 4:02:09 |
| 148 | Dylan Groenewegen | Team Jayco-AlUla | 4:03:33 |
| 149 | Stian Fredheim | Uno-X Mobility | 4:03:33 |
| 150 | Bert Van Lerberghe | Soudal Quick-Step | 4:04:27 |
| 151 | Tim Merlier | Soudal Quick-Step | 4:04:36 |
| 152 | Phil Bauhaus | Bahrain Victorious | 4:06:02 |
| 153 | Guillaume Boivin | Israel-Premier Tech | 4:07:11 |
| 154 | Luka Mezgec | Team Jayco-AlUla | 4:07:12 |
| 155 | Benjamin Thomas | Cofidis | 4:07:33 |
| 156 | Davide Ballerini | XDS Astana Team | 4:08:36 |
| 157 | Arnaud Démare | Arkea-B&B Hotels | 4:09:16 |
| 158 | Yevgeniy Fedorov | XDS Astana Team | 4:11:58 |
| 159 | Kamil Gradek | Bahrain Victorious | 4:12:03 |
| 160 | Roel van Sintmaartensdijk | Intermarché-Wanty | 4:12:09 |
| 161 | Edward Theuns | Lidl-Trek | 4:12:19 |
| 162 | Fabian Lienhard | Tudor Pro Cycling Team | 4:15:24 |
| 163 | Jordi Meeus | Red Bull-BORA-hansgrohe | 4:16:34 |
| 164 | Simone Consonni | Lidl-Trek | 4:17:00 |
Stage 17 map & profile:

Stage 17 map

Stage 17 profile
Stage 17 photos by Fotoreporter Sirotti:

Marc Hirschi before the stage start.

Valentin Paret-Peintre with some young fans

Tadej Pogacar

GC third place Florian Lipowitz

Retired super sprinter Mark Cavendish

Wout van Aert

Michael Woods

Sprinter Arnaud De Lie

A close one. Jonathan Milan just barely beats Jordi Meeus.

Tadej Pogacar finished safely, 27th in the stage.

Stage winner Jonathan Milan just after the stage finished.

Stage winner Jonathan Milan

Tadej Pogacar goes into stage 18 with a firm hold on the Yellow Jersey.