Tour de France stage 18: Ben O'Connor sails up Col de la Loze for solo victory while Tadej Pogačar drops rivals with second at summit
Jonas Vingegaard loses back wheel of race leader near top of final hors categorie climb and relinquishes more time

Ben O'Connor (Jayco-AlUla) cancelled the pain and disappointment of the first two weeks of his 2025 Tour de France with a perfectly executed stage victory in the Alps to Col de la Loze.
The Australian joined the break of the day and then attacked at the right moment, before the 26.5km climb to the finish, giving him the time to hold off the GC group.
Tadej Pogačar (UAE Team Emirates-XRG), Jonas Vingegaard (Visma-Lease a Bike) and their respective teammates fought out a tactical battle on the three Hors Category climbs of the queen stage of the Tour but neither tried or was able to to crack the other.
Vingegaard surged with two kilometres to go but Pogačar responded and then attacked him in the final 500 metres. He caught and passed Einer Rubio (Movistar), who was on the attack with O'Connor, to take second on the stage and the six-second time bonus.
Pogačar extended his lead on Vingegaard to 4:26 before Friday's second Alpine stage to La Plagne.
Oscar Onley (Picnic-PostNL) was fourth on the stage just behind Pogačar and Vingegaard and so closed the gap to third-placed Florian Lipowitz (Red Bull-Bora-Hansgrohe) to just 22 seconds.
Lipowitz is third at 11:01 but now faces a battle with the Scot for the final podium spot in Paris.
O'Connor crashed during stage 1 and suffered and lost time several times in the first half of the Tour. He showed his character to fight back in the final week.
"It's a rough race. It's the biggest race in the world, but it's for sure, the cruelest," O'Connor said.
"I've wanted to have another victory for so many years. I've been fighting with thirds and fourths and been so close, so now I couldn't be proud. I couldn't be more proud of myself and the boys that back me every single day of this whole race, even throughout the pretty rough times. Thanks to everyone at Jayco-AlUla. It's what the team needed and it's what I needed."
O'Connor explained his stage winning tactics.
"The valley was just a perfect opportunity to get time. You're going to get smoked by Tadej and Jonas if you stay there.
"It was worth a shot. On the final climb it was about just waiting for the steepest part, just before we entered Couchevel. Then it was just all about pacing and keeping on the speed, just typical time trial stuff. It's what I do best.
"Once Rubio was gone, I just didn't want to get rolled by the yellow jersey coming at me in those final five kilometres. When I heard it stayed at three minutes still with three kilometres to go, I knew I was safe and it was so good."
How it unfolded






With three hors categorie climbs and the finish line at the summit of the mighty Col de la Loze, stage 18 was rightly named as the queen stage of the 2025 Tour de France.
There was a quiet tension at the start in Vif, south of Grenoble, with riders concerned about the 65km of climbing and the 5,000 metres of altitude gain. Forecasts of rain were also a concern.
"It's the queen stage, so for sure a big fight, even to get to the finish," Primož Roglič said, capturing the feeling in the peloton.
Biniam Girmay (Intermarché-Wanty) started the stage despite being involved in the high-speed late crash on stage 17. Sadly Carlos Rodríguez was forced to abandon and give up his 10th place overall after medical checks confirmed he had fractured his hip.
The early part of the 171.5km stage in the valley road was controlled by Lidl-Trek. Jonathan Milan won the intermediate sprint after 23.7km to strengthen his lead in the green points jersey competition and ease the threat that Pogačar could take it in Paris.
The attacks for the stage victory began soon after on the lower slopes of the 21.7km Col du Glandon.
Wout van Aert was one of the first to attack, laying out Visma's stage tactics. UAE responded with Tim Wellens, before stage hunters like O'Connor, Ivan Romeo (Movistar), Santiago Buitrago, and Thyman Arensman (Ineos Grenadiers) joined the move.
The group soon shuffled, with Van Aert dropped but Matteo Jorgenson got across to represent Visma and then Roglič jumped across to the move. Bruno Armirail also dragged Decathlon-AG2R teammate Felix Gall across as the stage became tactically fascinating even on the first climb of the day.
Lenny Martinez (Bahrain Victorious) was also there but struggled and used a sticky bidon to stay in the group and then surge ahead to take the 20 points awarded in the mountains classification. However he soon cracked, dropped back to the peloton and then like a stone to a grupetto. Some 2:00 behind, Nils Politt did the early chasing and pacing for UAE.



Col de la Madeleine
The attackers gained an extra 30 seconds on the technical descent of the Glandon while Jorgenson and Arensman went off the front as the 19.2km Col de la Madeleine neared and the riders reached the 85km mid-point of the stage.
Jorgenson's aggression confirmed he was feeling better after a week of illness. However, the third week of the Tour is always cruel and Enric Mas (Movistar) was dropped and forced to abandon due to pain in his left knee.
The constant 7% grid of the Col de la Madeleine shook out the attack group, with Armirail, Gall, Roglič, Wellens, O’Connor, Rubio and Baudin making it across to Jorgenson and Arensman.
The Pogačar peloton was timed at 3:00 when Visma played another tactical card and Van Aert began to pace the peloton, taking over from UAE.
The Belgian only lasted for a few kilometres but it hurt everyone, with Kévin Vauquelin (Arkéa-B&B Hotels) dropped. Victor Campanaerts soon took over from Tiesj Benoot as Pogačar sat tight on Vingegaard's wheel, with only Jhonatan Narváez and Adam Yates there if needed.
Visma appeared to be in the ascendancy, with Simon Yates and then Sepp Kuss riding on the front for Vingegaard as Pogačar was forced on the defensive.
An attack was brewing and Vingegaard eventually danced away with Pogačar on his wheel with 4.6km of the Madeleine to climb. They soon joined the attackers and Jorgenson did the pacing to the summit for Vingegaard.
Behind Florian Lipowitz (Red Bull-Bora–Hansgrohe) was dropped but so was his third-place rival Oscar Onley (Picnic-PostNL), as they raced their own battle for the spot on the final podium in Paris.
Jhonatan Narváez and Adam Yates were distanced when Vingegaard attacked and were soon timed at 2:30, as Jorgenson dived down the descent.
"Jorgenson is going a bloc, full gas," Pogačar said over race radio in a call for help from his teammates.
Vingagaard could create no real decisive tactical advantage on Pogačar. Jorgenson helped set the pace but Pogačar seemed calm and in control. The long descent off the Madeleine and the hesitancy in the attack group helped Lipowitz gradually closed the gap, while Onley was much further behind.
With 40km to go and the Col de la Loze nearing, Jorgenson became tired of pacing the attackers.
When he eased and asked for help and Pogačar and Vingegaard looked at each other, O'Connor and Rubio jumped away, thinking of the stage victory. Jorgenson joined them and suddenly the race changed again.
The trio soon gained a minute, as Pogačar and Vingegaard slowed, locked in their own tactical battle. Lipowitz joined them and bravely attacked alone. It was the right thing to do as Pogačar and Vingegaard slowed even more and suddenly the chase group joined them, giving both strategically important teammates but surely ending their hopes of winning the stage.
There were 14 riders in the group, including Onley as the race reshuffled again before the 26.4km to the summit of the Col de la Loze.
Col de la Loze summit finish
Pogačar had Narváez, Soler and Adam Yates in the group, while Vingegaard had Kuss and Simon Yates. Soler did the pacing on the lower slopes of the Col del la Loze and up to the Courchevel ski resort.
Up front Jorgenson was dropped by O'Connor and Rubio, paying for his earlier hard work. Lipowitz was stronger and fresher, with his Red Bull directeur telling him to focus on his own watts and not to look back. He focused on the road ahead of him, carefully reducing the gap to the front of the race to 1:45.
The Pogačar group was timed at 3:00 with 17km to climb, meaning anything was still possible on the highest climb of this year's Tour de France.
With 16km to go, O'Connor threw down the gauntlet to Rubio, dancing away from the Colombian in pursuit of the stage victory. It was a brave play but the right one if he was going to hold off the GC group, Pogačar and Vingegaard.
O'Connor extended his lead on Rubio to 45 seconds on the easier gradients in Courchevel mid-way up the Col de la Loze, with the Pogačar group at 3:20 as Jorgenson dropped back, checked if his Visma teammates needed a bidon and then eased up.
There was an eerie sense of peace in the group as Simon Yates and Kuss continued to lead onto the final slopes of the Col de la Loze. When Simon Yates moved off the front, UAE surprisingly took over the pacemaking and Narváez rode a steady tempo, allowing O'Connor to stay 3:00 clear. Neither Pogačar or Vingegaard appeared able to go on the attack in a moment of stalemate.
Lipowitz slipped back as he ran out of energy. He was caught and dropped with seven kilometres to go. Surprisingly Roglič did not wait for him, riding his own race and own GC battle.
With five kilometres to go, O'Connor hit the 11% section of the Col de la Loze. The huge crowd cheered him on but it was a moment of pain for the Australian. He survived and was relieved when the gradient eased and so could fight on.
The final kilometres were up into the mist but fortunately earlier hailstone had eased. O'Connor kept his composure, knowing he had a three minute lead on the GC group. He had time to celebrate his second Tour de France victory and shouted out in celebration as he crossed the line and again beyond it.
Pogačar surged in the mist and cruelly caught Rubio in sight of the finish. He gained nine seconds on Vingegaard at the line to extend his lead and land a significant psychological blow on his rival before Frida's stage to La Plagne.
The 2025 Tour de France is not decided but Pogačar and UAE Team Emirates-XRG took another big step towards final victory.
Results
Place | Rider (Country) Team | Result |
---|---|---|
1 | Ben O'Connor (Aus) Jayco Alula | 05:03:47 |
2 | Tadej Pogačar (Slo) UAE Team Emirates-XRG | 00:01:45 |
3 | Jonas Vingegaard (Den) Visma-Lease a Bike | 00:01:54 |
4 | Oscar Onley (GBr) Picnic Postnl | 00:01:58 |
5 | Einer Rubio (Col) Movistar | 00:02:00 |
6 | Felix Gall (Aut) Decathlon AG2R la Mondiale | 00:02:25 |
7 | Primož Roglič (Slo) Red Bull-Bora-Hansgrohe | 00:02:46 |
8 | Adam Yates (GBr) UAE Team Emirates-XRG | 00:03:03 |
9 | Tobias Halland Johannessen (Nor) Uno-X Mobility | 00:03:09 |
10 | Sepp Kuss (USA) Visma-Lease a Bike | 00:03:26 |
11 | Florian Lipowitz (Ger) Red Bull-Bora-Hansgrohe | 00:03:37 |
12 | Kévin Vauquelin (Fra) Arkea-B&B Hotels | 00:04:34 |
13 | Jhonatan Narvaez (Ecu) UAE Team Emirates-XRG | 00:07:37 |
14 | Sergio Higuita (Col) XDS Astana | 00:08:13 |
15 | Michael Storer (Aus) Tudor Pro Cycling | Row 14 - Cell 2 |
16 | Simon Yates (GBr) Visma-Lease a Bike | Row 15 - Cell 2 |
17 | Ben Healy (Irl) EF Education-EasyPost | 00:09:28 |
18 | Santiago Buitrago (Col) Bahrain Victorious | 00:09:48 |
19 | Thymen Arensman (Ned) Ineos Grenadiers | 00:10:08 |
20 | Jordan Jegat (Fra) TotalEnergies | 00:11:20 |
21 | Xandro Meurisse (Bel) Alpecin-Deceuninck | 00:11:59 |
22 | Gregor Mühlberger (Aut) Movistar | Row 21 - Cell 2 |
23 | Warren Barguil (Fra) Picnic Postnl | 00:14:18 |
24 | Valentin Madouas (Fra) Groupama-FDJ | 00:14:31 |
25 | Matteo Jorgenson (USA) Visma-Lease a Bike | 00:17:05 |
26 | Aleksandr Vlasov (Rus) Red Bull-Bora-Hansgrohe | 00:21:22 |
27 | Marc Soler (Spa) UAE Team Emirates-XRG | 00:23:36 |
28 | Alex Baudin (Fra) EF Education-EasyPost | 00:27:37 |
29 | Bruno Armirail (Fra) Decathlon AG2R la Mondiale | Row 28 - Cell 2 |
30 | Harry Sweeny (Aus) EF Education-EasyPost | 00:28:29 |
31 | Anders Halland Johannessen (Nor) Uno-X Mobility | 00:28:35 |
32 | Cristian Rodriguez (Spa) Arkea-B&B Hotels | 00:29:05 |
33 | Guillaume Martin Guyonnet (Fra) Groupama-FDJ | 00:29:07 |
34 | Victor Campenaerts (Bel) Visma-Lease a Bike | 00:29:55 |
35 | Ewen Costiou (Fra) Arkea-B&B Hotels | 00:31:44 |
36 | Clément Berthet (Fra) Decathlon AG2R la Mondiale | 00:32:04 |
37 | Mathis Le Berre (Fra) Arkea-B&B Hotels | 00:33:01 |
38 | Tiesj Benoot (Bel) Visma-Lease a Bike | 00:33:23 |
39 | Pavel Sivakov (Fra) UAE Team Emirates-XRG | Row 38 - Cell 2 |
40 | Marc Hirschi (Swi) Tudor Pro Cycling | Row 39 - Cell 2 |
41 | Quinn Simmons (USA) Lidl-Trek | Row 40 - Cell 2 |
42 | Geraint Thomas (GBr) Ineos Grenadiers | 00:33:30 |
43 | Tobias Foss (Nor) Ineos Grenadiers | 00:33:37 |
44 | Raul Garcia (Spa) Arkea-B&B Hotels | 00:33:49 |
45 | Alexey Lutsenko (Kaz) Israel-Premier Tech | Row 44 - Cell 2 |
46 | Neilson Powless (USA) EF Education-EasyPost | 00:35:15 |
47 | Frank van den Broek (Ned) Picnic Postnl | 00:35:30 |
48 | Nelson Oliveira (Por) Movistar | 00:35:47 |
49 | Harold Tejada (Col) XDS Astana | 00:35:53 |
50 | Bastien Tronchon (Fra) Decathlon AG2R la Mondiale | Row 49 - Cell 2 |
51 | Louis Barre (Fra) Intermarché-Wanty | Row 50 - Cell 2 |
52 | Joe Blackmore (GBr) Israel-Premier Tech | 00:35:58 |
53 | Clément Russo (Fra) Groupama-FDJ | 00:36:05 |
54 | Quentin Pacher (Fra) Groupama-FDJ | Row 53 - Cell 2 |
55 | Michael Valgren (Den) EF Education-EasyPost | Row 54 - Cell 2 |
56 | Aurélien Paret Peintre (Fra) Decathlon AG2R la Mondiale | 00:36:18 |
57 | Silvan Dillier (Swi) Alpecin-Deceuninck | 00:36:20 |
58 | Nils Politt (Ger) UAE Team Emirates-XRG | Row 57 - Cell 2 |
59 | Emanuel Buchmann (Ger) Cofidis | Row 58 - Cell 2 |
60 | Emiel Verstrynge (Bel) Alpecin-Deceuninck | 00:36:22 |
61 | Ilan Van Wilder (Bel) Soudal-Quickstep | Row 60 - Cell 2 |
62 | Clement Venturini (Fra) Arkea-B&B Hotels | Row 61 - Cell 2 |
63 | Tim Wellens (Bel) UAE Team Emirates-XRG | 00:36:53 |
64 | Clément Champoussin (Fra) XDS Astana | 00:37:04 |
65 | Alexandre Delettre (Fra) TotalEnergies | Row 64 - Cell 2 |
66 | Jonas Rickaert (Bel) Alpecin-Deceuninck | 00:37:07 |
67 | Oliver Naesen (Bel) Decathlon AG2R la Mondiale | Row 66 - Cell 2 |
68 | Jonas Abrahamsen (Nor) Uno-X Mobility | Row 67 - Cell 2 |
69 | Gianni Vermeersch (Bel) Alpecin-Deceuninck | Row 68 - Cell 2 |
70 | Matteo Vercher (Fra) TotalEnergies | 00:37:11 |
71 | Maximilian Schachmann (Ger) Soudal-Quickstep | 00:37:18 |
72 | Mathieu Burgaudeau (Fra) TotalEnergies | Row 71 - Cell 2 |
73 | Ion Izaguirre (Spa) Cofidis | Row 72 - Cell 2 |
74 | Michael Woods (Can) Israel-Premier Tech | 00:37:27 |
75 | Andreas Leknessund (Nor) Uno-X Mobility | 00:37:35 |
76 | Mike Teunissen (Ned) XDS Astana | 00:37:45 |
77 | Callum Scotson (Aus) Decathlon AG2R la Mondiale | 00:37:48 |
78 | Mauro Schmid (Swi) Jayco Alula | Row 77 - Cell 2 |
79 | Axel Laurance (Fra) Ineos Grenadiers | 00:37:59 |
80 | Valentin Paret Peintre (Fra) Soudal-Quickstep | 00:38:18 |
81 | Matis Louvel (Fra) Israel-Premier Tech | 00:38:25 |
82 | Luke Plapp (Aus) Jayco Alula | Row 81 - Cell 2 |
83 | Jonas Rutsch (Ger) Intermarché-Wanty | 00:38:36 |
84 | Marco Haller (Aut) Tudor Pro Cycling | 00:38:37 |
85 | Romain Gregoire (Fra) Groupama-FDJ | 00:38:39 |
86 | Julian Alaphilippe (Fra) Tudor Pro Cycling | 00:38:47 |
87 | Wout van Aert (Bel) Visma-Lease a Bike | 00:38:52 |
88 | Kaden Groves (Aus) Alpecin-Deceuninck | Row 87 - Cell 2 |
89 | Jenno Berckmoes (Bel) Lotto | 00:39:06 |
90 | Brent Van Moer (Bel) Lotto | 00:39:21 |
91 | Connor Swift (GBr) Ineos Grenadiers | Row 90 - Cell 2 |
92 | Thomas Gachignard (Fra) TotalEnergies | 00:39:37 |
93 | William Barta (USA) Movistar | 00:40:47 |
94 | Niklas Märkl (Ger) Picnic Postnl | 00:40:53 |
95 | Pascal Ackermann (Ger) Israel-Premier Tech | Row 94 - Cell 2 |
96 | Pascal Eenkhoorn (Ned) Soudal-Quickstep | 00:41:01 |
97 | Paul Penhoet (Fra) Groupama-FDJ | 00:41:03 |
98 | Simone Velasco (Ita) XDS Astana | Row 97 - Cell 2 |
99 | Anthony Turgis (Fra) TotalEnergies | 00:41:13 |
100 | Roel van Sintmaartensdijk (Ned) Intermarché-Wanty | Row 99 - Cell 2 |
101 | Markus Hoelgaard (Nor) Uno-X Mobility | Row 100 - Cell 2 |
102 | Laurenz Rex (Bel) Intermarché-Wanty | Row 101 - Cell 2 |
103 | Damien Touze (Fra) Cofidis | Row 102 - Cell 2 |
104 | Dylan Teuns (Bel) Cofidis | 00:41:18 |
105 | Fred Wright (GBr) Bahrain Victorious | Row 104 - Cell 2 |
106 | Samuel Watson (GBr) Ineos Grenadiers | Row 105 - Cell 2 |
107 | Edoardo Affini (Ita) Visma-Lease a Bike | 00:41:24 |
108 | Robert Stannard (Aus) Bahrain Victorious | Row 107 - Cell 2 |
109 | Mick van Dijke (Ned) Red Bull-Bora-Hansgrohe | 00:41:26 |
110 | Marius Mayrhofer (Ger) Tudor Pro Cycling | Row 109 - Cell 2 |
111 | Laurence Pithie (NZl) Red Bull-Bora-Hansgrohe | 00:41:29 |
112 | Gianni Moscon (Ita) Red Bull-Bora-Hansgrohe | Row 111 - Cell 2 |
113 | Alex Aranburu (Spa) Cofidis | Row 112 - Cell 2 |
114 | Pablo Castrillo (Spa) Movistar | Row 113 - Cell 2 |
115 | Ivan Romeo (Spa) Movistar | Row 114 - Cell 2 |
116 | Ivan Garcia (Spa) Movistar | Row 115 - Cell 2 |
117 | Kasper Asgreen (Den) EF Education-EasyPost | Row 116 - Cell 2 |
118 | Lewis Askey (GBr) Groupama-FDJ | Row 117 - Cell 2 |
119 | Vito Braet (Bel) Intermarché-Wanty | Row 118 - Cell 2 |
120 | Yevgeniy Fedorov (Kaz) XDS Astana | Row 119 - Cell 2 |
121 | Matteo Trentin (Ita) Tudor Pro Cycling | 00:41:39 |
122 | Eduardo Sepulveda (Arg) Lotto | 00:41:42 |
123 | Hugo Page (Fra) Intermarché-Wanty | Row 122 - Cell 2 |
124 | Krists Neilands (Lat) Israel-Premier Tech | 00:42:05 |
125 | Sean Flynn (GBr) Picnic Postnl | Row 124 - Cell 2 |
126 | Jake Stewart (GBr) Israel-Premier Tech | 00:42:07 |
127 | Fabian Lienhard (Swi) Tudor Pro Cycling | Row 126 - Cell 2 |
128 | Tobias Lund Andresen (Den) Picnic Postnl | Row 127 - Cell 2 |
129 | Amaury Capiot (Bel) Arkea-B&B Hotels | 00:42:15 |
130 | Elmar Reinders (Ned) Jayco Alula | Row 129 - Cell 2 |
131 | Luke Durbridge (Aus) Jayco Alula | Row 130 - Cell 2 |
132 | Sébastien Grignard (Bel) Lotto | 00:42:21 |
133 | Pavel Bittner (Cze) Picnic Postnl | 00:42:25 |
134 | Tim Naberman (Ned) Picnic Postnl | Row 133 - Cell 2 |
135 | Kamil Gradek (Pol) Bahrain Victorious | 00:42:31 |
136 | Jasper Stuyven (Bel) Lidl-Trek | Row 135 - Cell 2 |
137 | Thibau Nys (Bel) Lidl-Trek | Row 136 - Cell 2 |
138 | Stian Edvardsen-Fredheim (Nor) Uno-X Mobility | Row 137 - Cell 2 |
139 | Bert Van Lerberghe (Bel) Soudal-Quickstep | 00:42:34 |
140 | Alberto Dainese (Ita) Tudor Pro Cycling | Row 139 - Cell 2 |
141 | Tim Merlier (Bel) Soudal-Quickstep | 00:42:37 |
142 | Toms Skujins (Lat) Lidl-Trek | Row 141 - Cell 2 |
143 | Guillaume Boivin (Can) Israel-Premier Tech | Row 142 - Cell 2 |
144 | Davide Ballerini (Ita) XDS Astana | Row 143 - Cell 2 |
145 | Jonathan Milan (Ita) Lidl-Trek | Row 144 - Cell 2 |
146 | Biniam Girmay (Eri) Intermarché-Wanty | Row 145 - Cell 2 |
147 | Vincenzo Albanese (Ita) EF Education-EasyPost | Row 146 - Cell 2 |
148 | Arnaud Demare (Fra) Arkea-B&B Hotels | Row 147 - Cell 2 |
149 | Lenny Martinez (Fra) Bahrain Victorious | 00:42:47 |
150 | Phil Bauhaus (Ger) Bahrain Victorious | 00:42:53 |
151 | Benjamin Thomas (Fra) Cofidis | 00:43:03 |
152 | Alexis Renard (Fra) Cofidis | Row 151 - Cell 2 |
153 | Magnus Cort Nielsen (Den) Uno-X Mobility | 00:43:18 |
154 | Jarrad Drizners (Aus) Lotto | 00:43:31 |
155 | Luka Mezgec (Slo) Jayco Alula | 00:43:37 |
156 | Arnaud De Lie (Bel) Lotto | 00:43:42 |
157 | Jordi Meeus (Bel) Red Bull-Bora-Hansgrohe | 00:43:44 |
158 | Dylan Groenewegen (Ned) Jayco Alula | 00:43:51 |
159 | Matej Mohoric (Slo) Bahrain Victorious | 00:44:13 |
160 | Simone Consonni (Ita) Lidl-Trek | 00:44:27 |
161 | Edward Theuns (Bel) Lidl-Trek | 00:46:42 |
General classification after stage 18
Place | Rider (Country) Team | Result |
---|---|---|
1 | Tadej Pogačar (Slo) UAE Team Emirates-XRG | 66:55:42 |
2 | Jonas Vingegaard (Den) Visma-Lease a Bike | 00:04:26 |
3 | Florian Lipowitz (Ger) Red Bull-Bora-Hansgrohe | 00:11:01 |
4 | Oscar Onley (GBr) Picnic Postnl | 00:11:23 |
5 | Primož Roglič (Slo) Red Bull-Bora-Hansgrohe | 00:12:49 |
6 | Felix Gall (Aut) Decathlon AG2R la Mondiale | 00:15:36 |
7 | Kévin Vauquelin (Fra) Arkea-B&B Hotels | 00:16:15 |
8 | Tobias Halland Johannessen (Nor) Uno-X Mobility | 00:18:31 |
9 | Ben Healy (Irl) EF Education-EasyPost | 00:25:41 |
10 | Ben O'Connor (Aus) Jayco Alula | 00:29:19 |
11 | Jordan Jegat (Fra) TotalEnergies | 00:32:51 |
12 | Sepp Kuss (USA) Visma-Lease a Bike | 00:49:46 |
13 | Thymen Arensman (Ned) Ineos Grenadiers | 00:52:49 |
14 | Jhonatan Narvaez (Ecu) UAE Team Emirates-XRG | 00:58:02 |
15 | Sergio Higuita (Col) XDS Astana | 01:01:31 |
16 | Guillaume Martin Guyonnet (Fra) Groupama-FDJ | 01:02:42 |
17 | Matteo Jorgenson (USA) Visma-Lease a Bike | 01:13:01 |
18 | Simon Yates (GBr) Visma-Lease a Bike | 01:13:34 |
19 | Valentin Madouas (Fra) Groupama-FDJ | 01:16:19 |
20 | Adam Yates (GBr) UAE Team Emirates-XRG | 01:19:20 |
21 | Warren Barguil (Fra) Picnic Postnl | 01:19:29 |
22 | Cristian Rodriguez (Spa) Arkea-B&B Hotels | 01:20:50 |
23 | Gregor Mühlberger (Aut) Movistar | 01:21:57 |
24 | Xandro Meurisse (Bel) Alpecin-Deceuninck | 01:28:21 |
25 | Aleksandr Vlasov (Rus) Red Bull-Bora-Hansgrohe | 01:48:21 |
26 | Victor Campenaerts (Bel) Visma-Lease a Bike | 01:59:03 |
27 | Emanuel Buchmann (Ger) Cofidis | 01:59:07 |
28 | Callum Scotson (Aus) Decathlon AG2R la Mondiale | 01:59:54 |
29 | Ilan Van Wilder (Bel) Soudal-Quickstep | 02:00:10 |
30 | Raul Garcia (Spa) Arkea-B&B Hotels | 02:04:05 |
31 | Marc Soler (Spa) UAE Team Emirates-XRG | 02:06:53 |
32 | Santiago Buitrago (Col) Bahrain Victorious | 02:07:08 |
33 | Aurélien Paret Peintre (Fra) Decathlon AG2R la Mondiale | 02:07:32 |
34 | Romain Gregoire (Fra) Groupama-FDJ | 02:08:31 |
35 | Clément Berthet (Fra) Decathlon AG2R la Mondiale | 02:11:07 |
36 | Einer Rubio (Col) Movistar | 02:12:19 |
37 | Harry Sweeny (Aus) EF Education-EasyPost | 02:18:59 |
38 | Quentin Pacher (Fra) Groupama-FDJ | 02:22:54 |
39 | Alex Baudin (Fra) EF Education-EasyPost | 02:27:35 |
40 | Tim Wellens (Bel) UAE Team Emirates-XRG | 02:28:04 |
41 | Michael Storer (Aus) Tudor Pro Cycling | 02:28:24 |
42 | Julian Alaphilippe (Fra) Tudor Pro Cycling | 02:28:28 |
43 | Joe Blackmore (GBr) Israel-Premier Tech | 02:29:30 |
44 | Clement Venturini (Fra) Arkea-B&B Hotels | 02:30:12 |
45 | Tiesj Benoot (Bel) Visma-Lease a Bike | 02:31:39 |
46 | Simone Velasco (Ita) XDS Astana | 02:32:06 |
47 | Harold Tejada (Col) XDS Astana | 02:32:33 |
48 | Geraint Thomas (GBr) Ineos Grenadiers | 02:37:17 |
49 | Pascal Eenkhoorn (Ned) Soudal-Quickstep | 02:37:54 |
50 | Quinn Simmons (USA) Lidl-Trek | 02:38:52 |
51 | Mathieu Burgaudeau (Fra) TotalEnergies | 02:41:06 |
52 | Valentin Paret Peintre (Fra) Soudal-Quickstep | 02:43:16 |
53 | Michael Woods (Can) Israel-Premier Tech | 02:43:32 |
54 | Neilson Powless (USA) EF Education-EasyPost | 02:43:37 |
55 | Bruno Armirail (Fra) Decathlon AG2R la Mondiale | 02:43:50 |
56 | Frank van den Broek (Ned) Picnic Postnl | 02:43:58 |
57 | Axel Laurance (Fra) Ineos Grenadiers | 02:48:31 |
58 | Alexandre Delettre (Fra) TotalEnergies | 02:49:01 |
59 | Andreas Leknessund (Nor) Uno-X Mobility | 02:56:02 |
60 | Emiel Verstrynge (Bel) Alpecin-Deceuninck | 02:56:41 |
61 | Markus Hoelgaard (Nor) Uno-X Mobility | 02:56:55 |
62 | Ewen Costiou (Fra) Arkea-B&B Hotels | 02:57:54 |
63 | Thomas Gachignard (Fra) TotalEnergies | 03:00:47 |
64 | Jasper Stuyven (Bel) Lidl-Trek | 03:02:25 |
65 | Mathis Le Berre (Fra) Arkea-B&B Hotels | 03:03:01 |
66 | Nelson Oliveira (Por) Movistar | 03:03:13 |
67 | Wout van Aert (Bel) Visma-Lease a Bike | 03:04:32 |
68 | Maximilian Schachmann (Ger) Soudal-Quickstep | 03:06:21 |
69 | Michael Valgren (Den) EF Education-EasyPost | 03:06:23 |
70 | Clément Champoussin (Fra) XDS Astana | 03:07:22 |
71 | Alexey Lutsenko (Kaz) Israel-Premier Tech | 03:08:33 |
72 | Pavel Sivakov (Fra) UAE Team Emirates-XRG | 03:09:07 |
73 | Ion Izaguirre (Spa) Cofidis | 03:10:38 |
74 | Jenno Berckmoes (Bel) Lotto | 03:10:45 |
75 | Alex Aranburu (Spa) Cofidis | 03:13:42 |
76 | Jonas Abrahamsen (Nor) Uno-X Mobility | 03:13:54 |
77 | Oliver Naesen (Bel) Decathlon AG2R la Mondiale | 03:17:01 |
78 | Brent Van Moer (Bel) Lotto | 03:18:26 |
79 | Krists Neilands (Lat) Israel-Premier Tech | 03:18:38 |
80 | Tobias Foss (Nor) Ineos Grenadiers | 03:19:24 |
81 | Nils Politt (Ger) UAE Team Emirates-XRG | 03:22:18 |
82 | Louis Barre (Fra) Intermarché-Wanty | 03:22:54 |
83 | Mike Teunissen (Ned) XDS Astana | 03:22:56 |
84 | Marius Mayrhofer (Ger) Tudor Pro Cycling | 03:23:44 |
85 | Bastien Tronchon (Fra) Decathlon AG2R la Mondiale | 03:24:09 |
86 | Marco Haller (Aut) Tudor Pro Cycling | 03:25:12 |
87 | Marc Hirschi (Swi) Tudor Pro Cycling | 03:25:33 |
88 | Anders Halland Johannessen (Nor) Uno-X Mobility | 03:27:20 |
89 | Clément Russo (Fra) Groupama-FDJ | 03:27:44 |
90 | Kasper Asgreen (Den) EF Education-EasyPost | 03:30:36 |
91 | Laurence Pithie (NZl) Red Bull-Bora-Hansgrohe | 03:31:04 |
92 | Dylan Teuns (Bel) Cofidis | 03:33:21 |
93 | Toms Skujins (Lat) Lidl-Trek | 03:34:16 |
94 | Damien Touze (Fra) Cofidis | 03:34:22 |
95 | Jonas Rickaert (Bel) Alpecin-Deceuninck | 03:34:32 |
96 | Kaden Groves (Aus) Alpecin-Deceuninck | 03:36:57 |
97 | Tobias Lund Andresen (Den) Picnic Postnl | 03:38:11 |
98 | Gianni Vermeersch (Bel) Alpecin-Deceuninck | 03:38:17 |
99 | Lenny Martinez (Fra) Bahrain Victorious | 03:38:48 |
100 | Fred Wright (GBr) Bahrain Victorious | 03:38:59 |
101 | William Barta (USA) Movistar | 03:42:27 |
102 | Matis Louvel (Fra) Israel-Premier Tech | 03:43:40 |
103 | Mauro Schmid (Swi) Jayco Alula | 03:45:20 |
104 | Gianni Moscon (Ita) Red Bull-Bora-Hansgrohe | 03:45:54 |
105 | Matteo Trentin (Ita) Tudor Pro Cycling | 03:48:54 |
106 | Ivan Romeo (Spa) Movistar | 03:49:40 |
107 | Connor Swift (GBr) Ineos Grenadiers | 03:55:18 |
108 | Niklas Märkl (Ger) Picnic Postnl | 03:55:58 |
109 | Vincenzo Albanese (Ita) EF Education-EasyPost | 03:57:55 |
110 | Pablo Castrillo (Spa) Movistar | 03:58:42 |
111 | Paul Penhoet (Fra) Groupama-FDJ | 04:02:05 |
112 | Anthony Turgis (Fra) TotalEnergies | 04:02:37 |
113 | Thibau Nys (Bel) Lidl-Trek | 04:05:39 |
114 | Ivan Garcia (Spa) Movistar | 04:09:13 |
115 | Edoardo Affini (Ita) Visma-Lease a Bike | 04:10:06 |
116 | Eduardo Sepulveda (Arg) Lotto | 04:11:35 |
117 | Alberto Dainese (Ita) Tudor Pro Cycling | 04:11:44 |
118 | Robert Stannard (Aus) Bahrain Victorious | 04:12:19 |
119 | Jake Stewart (GBr) Israel-Premier Tech | 04:12:46 |
120 | Matej Mohoric (Slo) Bahrain Victorious | 04:17:49 |
121 | Mick van Dijke (Ned) Red Bull-Bora-Hansgrohe | 04:18:10 |
122 | Luke Plapp (Aus) Jayco Alula | 04:18:22 |
123 | Pascal Ackermann (Ger) Israel-Premier Tech | 04:19:32 |
124 | Samuel Watson (GBr) Ineos Grenadiers | 04:21:34 |
125 | Jonas Rutsch (Ger) Intermarché-Wanty | 04:23:32 |
126 | Silvan Dillier (Swi) Alpecin-Deceuninck | 04:23:47 |
127 | Tim Naberman (Ned) Picnic Postnl | 04:23:53 |
128 | Magnus Cort Nielsen (Den) Uno-X Mobility | 04:26:34 |
129 | Pavel Bittner (Cze) Picnic Postnl | 04:27:19 |
130 | Sean Flynn (GBr) Picnic Postnl | 04:27:48 |
131 | Matteo Vercher (Fra) TotalEnergies | 04:28:01 |
132 | Biniam Girmay (Eri) Intermarché-Wanty | 04:29:16 |
133 | Amaury Capiot (Bel) Arkea-B&B Hotels | 04:31:27 |
134 | Luke Durbridge (Aus) Jayco Alula | 04:32:02 |
135 | Lewis Askey (GBr) Groupama-FDJ | 04:34:53 |
136 | Jarrad Drizners (Aus) Lotto | 04:35:13 |
137 | Elmar Reinders (Ned) Jayco Alula | 04:36:47 |
138 | Arnaud De Lie (Bel) Lotto | 04:37:19 |
139 | Laurenz Rex (Bel) Intermarché-Wanty | 04:37:57 |
140 | Hugo Page (Fra) Intermarché-Wanty | 04:38:54 |
141 | Vito Braet (Bel) Intermarché-Wanty | 04:40:45 |
142 | Stian Edvardsen-Fredheim (Nor) Uno-X Mobility | 04:41:54 |
143 | Sébastien Grignard (Bel) Lotto | 04:42:18 |
144 | Alexis Renard (Fra) Cofidis | 04:43:17 |
145 | Jonathan Milan (Ita) Lidl-Trek | 04:44:16 |
146 | Bert Van Lerberghe (Bel) Soudal-Quickstep | 04:45:13 |
147 | Tim Merlier (Bel) Soudal-Quickstep | 04:45:34 |
148 | Guillaume Boivin (Can) Israel-Premier Tech | 04:46:08 |
149 | Dylan Groenewegen (Ned) Jayco Alula | 04:46:21 |
150 | Phil Bauhaus (Ger) Bahrain Victorious | 04:48:10 |
151 | Luka Mezgec (Slo) Jayco Alula | 04:48:49 |
152 | Arnaud Demare (Fra) Arkea-B&B Hotels | 04:49:16 |
153 | Benjamin Thomas (Fra) Cofidis | 04:50:06 |
154 | Davide Ballerini (Ita) XDS Astana | 04:50:43 |
155 | Kamil Gradek (Pol) Bahrain Victorious | 04:51:50 |
156 | Roel van Sintmaartensdijk (Ned) Intermarché-Wanty | 04:52:52 |
157 | Yevgeniy Fedorov (Kaz) XDS Astana | 04:52:57 |
158 | Fabian Lienhard (Swi) Tudor Pro Cycling | 04:54:24 |
159 | Edward Theuns (Bel) Lidl-Trek | 04:57:36 |
160 | Simone Consonni (Ita) Lidl-Trek | 04:58:43 |
161 | Jordi Meeus (Bel) Red Bull-Bora-Hansgrohe | 04:59:48 |
The latest race content, interviews, features, reviews and expert buying guides, direct to your inbox!

Stephen is one of the most experienced member of the Cyclingnews team, having reported on professional cycling since 1994. He has been Head of News at Cyclingnews since 2022, before which he held the position of European editor since 2012 and previously worked for Reuters, Shift Active Media, and CyclingWeekly, among other publications.
You must confirm your public display name before commenting
Please logout and then login again, you will then be prompted to enter your display name.
Latest on Cyclingnews
-
'I have it to be with the very best' – Second stage win boosts Thymen Arensman and Ineos Grenadiers' whole Tour de France
Dutchman bagged a big win to La Plagne, ensuring Ineos will leave race with at least two victories -
Tour de France abandons: Enric Mas drops out of the 2025 edition on stage 18
Carlos Rodriguez also out as second-tier GC contenders struggle -
'Only the GC counted' - Felix Gall closes in on fifth overall at Tour de France on final summit finish
Decathlon AG2R La Mondiale climber heading for best-ever Grand Tour overall result in Paris -
'If you want to win big, you have to risk a little' – Red Bull-Bora-Hansgrohe gamble mostly pays off to hold Tour de France podium spot
Primož Roglič sacrificed his top-five spot to chase a stage win, leaving Florian Lipowitz isolated in finale, but German still keeps third