
Thursday, July 24: Stage 18, Vif - Courchevel/Col de la Loze, 171.5 km
Stage 18 map & profile | Stage 18 photos

Ben O'Connor wins stage 18. Photo: ASO/Aurélien Vialatte
Plato's dialogue Apology is available in both Kindle eBook & audiobook versions. To get your copy, just click on the Amazon link on the right.
Rated ascents:
Weather at the city of Courchevel at 2:00 PM, local time: 21C (70F), cloudy, with the wind from the southwest at 11 km/hr (7 mph). There is a 17% chance of rain.
Here's the race organizer's weather forecast: Although the sun is currently shining on the start line in Vif, the weather for this 18th stage of the Tour de France will be as daunting as its mountain passes. The skies will be overcast and rain is expected throughout the day, with storms forecast for the climb to Courchevel - Col de la Loze. Temperatures will vary widely, from 23ºC in the valley between Glandon and Madeleine to 10ºC, which will make the riders shiver at the top of the climbs. Epic weather for a stage that promises to be spectacular.
The stage: Tour boss Chritian Prudhomme writes: The stats don’t lie: this is the most demanding stage of the 2025 Tour, with 5,500 meters of vertical gain. Much of this total will come on the climbs to the Col du Glandon and then the Col de la Madeleine, where the riders will reach 2,000 meters for the first time today. Then they’ll hit the heights again above Courchevel to reach the Col de la Loze, tackling the pass for the first time from this flank. After passing through the altiport, the final four kilometers are on a cycle track where the gradient is just as irregular and almost as hard on the legs as the route taken in 2020 and 2023.
The race: The race organizer posted this about two riders not starting: Involved in the crash that split the bunch into the last kilometer of stage 17, Cyril Barthe (Groupama-FDJ) and Carlos Rodriguez (Ineos Grenadiers) crossed the finish line but won’t resume racing today due to the injuries they sustained.
Regarding the French rider’s condition, his team announced as early as last night that he would be forced to retire due to a concussion. He had finished his previous three Tours.
As for the Spanish climber, Ineos Grenadiers says “hospital scans have confirmed a fracture of the pelvis. Carlos is in good spirits and remains under the close supervision of our medical team. He will now return home to focus on recovery and the rehabilitation process.” He was fighting for a top-10 finish in the overall standings, in line with his performance in his first two participations (5th in 2023 with a stage win, 7th in 2024).
162 riders began stage 18 at 12:20 PM.
Here's the race organizer's stage 18 summary:
Ben O’Connor (Jayco AlUla) conquered the highest summit of the 2025 Tour de France, the Col de la Loze (2,304 m), to claim his second stage win in the race four years after his triumph at Tignes. At the time, the Australian climber had covered the final 17 km solo. On Thursday, he dropped his last rival, Einer Rubio (Movistar), with 16 km to go and held off a late chase by Tadej Pogacar (UAE Team Emirates-XRG). The Slovenian crossed the line 1’45’’ behind, just ahead of Jonas Vingegaard (Visma-Lease a Bike), who lost 11 seconds including time bonuses. Heading into the final mountain stage to La Plagne on Friday, the Slovenian has a lead of 4’26’’ in the overall standings. The battle for third place and the white jersey is extremely close as Oscar Onley (Picnic PostNL) gained 1’37’’ on Florian Lipowitz (Red Bull-Bora-Hansgrohe), narrowing the gap to just 22’’.
The race:
Onto the queen stage of the Tour de France 2025! Just four days ahead of the finish in Paris, the riders face three HC climbs - Glandon, Madeleine and La Loze - and an impressive total of 5,450 metres.
The intermediate sprint for Milan
As Carlos Rodriguez (Ineos Grenadiers) and Cyril Barthe (Groupama-FDJ) withdraw, there are now 162 riders left in the Tour de France. The large number of Lidl-Trek riders at the front of the peloton sends a very clear message to any potential attackers that the green jersey is very interested in the points at the intermediate sprint at km 23.
No one is looking to upset Jonathan Milan, who fulfils his first mission for the day. The battle to break away begins immediately afterwards, with an acceleration by Wout van Aert, followed by Tim Wellens.
Lenny Martinez takes the lead at Glandon
After numerous attacks and counter-attacks, two fairly large groups formed on the climb to the Col du Glandon:
At the front of the race, there are Tim Wellens (UAE Team Emirates-XRG), Matteo Jorgenson (Visma-Lease a Bike), Lenny Martinez (Bahrain Victorious), Thymen Arensman (Ineos Grenadiers), Primoz Roglic (Red Bull-Bora-Hansgrohe), Ben O'Connor (Jayco AlUla), Raul Garcia Pierna (Arkéa-B&B Hotels), Will Barta, Gregor Muhlberger, Einer Rubio (Movistar), Felix Gall, Bruno Armirail (Decathlon AG2R La Mondiale), Michael Woods, Alexey Lutsenko (Israel Premier Tech)
In pursuit at 30 seconds halfway up the climb: Andreas Leknessund (Uno-X Mobility) are riding 30 seconds ahead of Luke Plapp (Jayco AlUla), Cristian Rodriguez (Arkéa-B&B Hotels), Enric Mas, Pablo Castrillo (Movistar), Jordan Jegat (Total Energies) and Frank van den Broek (Picnic PostNL).
Lenny Martinez manages to take the 20 points at the summit, while the peloton trails by 1'50''.

The front group goes over the first of the three big mountains, the Col du Glandon. The eight riders were: Lenny Martinez, Thymen Arensman, Matteo Jorgenson, Gregor Mulhberger, Bruno Armirail, Felix Gall, Einer Rubio & Primoz Roglic. The peloton is 1min 50sec back.
Visma-Lease a Bike change the script
On the descent, the Jorgenson-Arensman duo take off, but the configuration changes again on the climb to the Col de la Madeleine, where Lenny Martinez is no longer in contention.
Some 11 km away from the summit, the two descenders are caught by Primoz Roglic, Ben O'Connor, Einer Rubio, Felix Gall, Bruno Armirail and Alex Baudin. But their 2'30" lead melts away as Visma-Lease a Bike steps up the pace, preparing Vingegaard’s attack 5 km away from the summit (72 km to go to Col de la Loze!).

Near the top of the Col de la Madeleine: Matteo Jorgenson, Jonas Vingegaard, Tadej Pogacar, Felix Gall, Primoz Roglic, Ben O'Connor & Einer Rubio
The shake-up is radical, with only Pogacar remaining on the Dane's wheel. The leading duo in the general classification catches up with the rest of the breakaway 4 km from the Col de la Madeleine and finishes the climb with this group. Vingegaard goes first at the top ahead of Pogacar.

Jonas Vingegaard leads the front group over the top of the Col de la Madeleine with Tadej Pogacar (in yellow) right on his wheel.
O’Connor puts the hammer down
Back on the valley, the pace drops. O’Connor attacks with 41 km to go. Rubio and Jorgenson follow him. The others look at each other. Lipowitz seizes the opportunity to return and attack with 34 km to go. Yet another situation develops ahead of the final ascent of the day.
At the bottom, the three attackers are 1 minute away from Lipowitz. And a strong group of chasers - with the likes of Oscar Onley (Picnic PostNL), Kevin Vauquelin (Arkéa-B&B Hotels) and Tobias Johannessen (Uno-X Mobility) - get back to the Pogacar - Vingegaard group. They start the climb with a gap of 3’50’’.
O’Connor and Rubio drop Jorgenson with 21 km to go. And the Australian climber goes solo 16 km away from the finish. At that point, Lipowitz is 1’50’’ behind. Simon Yates drives the GC group with a gap of 3’05’’.
O’Connor doesn’t look back while UAE Team Emirates-XRG take control of the GC group with Jhonatan Narvaez and then Adam Yates, whose pace prevents further attacks until the last kilometre.

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

Stage 18 map

Stage 18 profile
Stage 18 photos by Fotoreporter Sirotti:

The climb to the finish, the Col de la Loze

Ben O'Connor climbing the Col de la Loze and headed to a stage win.

Riders race through the rain on the Col de la Loze

Ben O'Connor has taken flight. He is alone and climbing to a spectacular stage win.

Adam Yates leads Tadej Pogacar and Jonas Vingegaard up the Col de la Loze.

Felix Gall and Primoz Roglic

Best Young Rider Florian Lipowitz on the Col de La Loze.

Ben Healy

Ben O'Connor finishes alone, 1min 45sec ahead of Tadej Pogacar, his nearest chaser.

Tadej Pogacar finishes second.

Jonas Vingegaard finishes third.

Eighth place Adam Yates

Tobias Halland Johannessen was 9th across the line.

Sepp Kuss was tenth.

Stage winner Ben O'Connor after finishing the stage.

Stage winner Ben O'Connor

Tadej Pogacar will start stage 19 in yellow