Per Strand Hagenes (Visma-Lease a Bike) went on a late solo attack to fly to victory in the 120th edition of Paris-Tours, jumping just before the flamme rouge and holding off a charging reduced group to claim the victory in the historic Classic.
Jasper Stuyven (Soudal-QuickStep) was desperately trying chase down Strand Hagenes in the final straight, but had to settle for second on the line, with Visma going 1-3 as Christophe Laporte sprinted to the final spot on the podium.
A strong 12-rider breakaway had been away for much of the 216km race, with a select group of five establishing themselves over the gravel sectors, but they were reeled back in with 21km to go as the finale kicked into action.
The final 20km saw multiple attacks and multiple riders and groups get away, with a group of 11 coming into a cagey final 3km.
It was an acceleration from Toms Skujiņš (Lidl-Trek) that was actually the catalyst of Strand Hagenes' move, with the Norwegian launching off his wheel and powering through the final kilometre for victory.
"During the day I didn't feel the best, but I just kept on fighting," the 23-year-old said at the finish. "I knew [that] quite often after the climbs it got a little bit back together, and I knew a lot of the guys were watching Christophe, so I could benefit a little bit from that. I tried to find the good moment, and then when I had the gap it was all-in to the line.
"We messed up a little bit in the beginning, with not being in that big morning break, but the guys went all-out to try to make it so that we could still race for the win. I really appreciate that work, they were giving it their all out there so me and Christophe could fight for it. I think this is a big team performance today."
This is the second time Strand Hagenes has tasted victory in Tours, having won the under-23 edition of this race in 2022. This Sunday's espoirs edition was won by newly-crowned European champion Hector Alvárez (Lidl-Trek Future Racing).
"I like the race," Strand Hagenes said. "I'm always suffering a little bit in October, but it's a nice race to finish off the season. It's the last day of racing so you just give it your all. It's an interesting race where anything can happen, and you also need some luck to not have a puncture, and today I had that."
How it unfolded

The 120th edition of Paris-Tours rolled out of Chartres for 216km of racing across the French countryside, with 10 off-road farmyard sectors littering the final third of racing to make one of the toughest semi-Classics of the year.
Despite the flat start to the race, it didn't take long for a group to get away, and a fair large one at that, with 12 riders going up the road after less than 10km. The group included the likes of Jakob Söderqvist (Lidl-Trek), Stefan Bissegger (Decathlon CMA CGM) and Yves Lampaert (Soudal-QuickStep), but the peloton were clearly not entirely happy with a group of that size and strength going away, and they were initially kept on a tight leash, gaining just 25 seconds after 20km out front.
After some will-they-won't-they, however, the break was finally given a little more leeway, and pulled out a gap of two minutes, eventually growing to three as the situation held steady for the first 120km of racing. In such a long race, many riders and teams were saving as much as possible for the pointy end of the course with the off-road sectors and punchy climbs.
Martijn Rasenberg (Unibet Rose Rockets) was the first rider to drop out of the lead group after an untimely puncture, and he was absorbed by the peloton to make it 11 riders in the lead.
With 80km to go, the peloton were standing to ramp up their pace, with Visma-Lease a Bike and Netcompany Ineos on the front, bringing the gap down to two minutes. With 76km to go, a handful of riders came down in a crash in the middle of the bunch, including Aimé De Gendt (Pinarello-Q36.5) and Rayan Boulahoite (TotalEnergies) who stayed down the longest whilst the other riders got going again.
The first chemin de vigne sector passed without major incident, but the second saw Tim Merlier (Soudal-QuickStep) puncture and take a quick bike change, but even though it was a speedy swap, he still had to chase back on.
The gap dropped below a minute for the first time with 50km to go, shortly before a mass crash hit the peloton – on a tarmac stretch – with multiple riders veering off onto the grass verge. Plenty of big names and potential contenders were involved, including Dorian Godon (Netcompany Ineos) and Arnaud De Lie (Lotto Intermarché), and several of the worst-affected riders stayed down, not able to continue.
The bunch had been going at full pelt at the time of the crash, though, so rather than slow up as they hit the next sector, they had no choice but to push on and the gap to the leaders kept falling.
Up front, unaffected by the crash, a group of five forged on from the break to go clear of the rest of the group, but the bunch were hot on their heels at this point as the carnage of the sectors had riders spread across the road.
The acceleration in the bunch saw the remainder of the break caught and the gap down to 25 seconds, but a resettling on the next long tarmac stretch saw the gap go out again and the five leaders had a gap of a minute with 40km to go. The five leaders were Lampaert, Bissegger, Matis Louvel (NSN), Storm Ingebrigtsen (Uno-X Mobility) and Julius van den Berg (Picnic PostNL).
With such strength in the lead group, they were working well to try and survive as long as possible, dropping Ingebrigtsen in the process, but the peloton was pushing equally hard to bring them back, with Lewis Askey (NSN) particularly active as the gap fell below 20 seconds with 25km to go. There had been a big split in the peloton, leaving fewer than 30 riders in the main chase, but things regrouped slightly with some dropped riders coming back.
However, this didn't last long as the next big push saw Pierre Gautherat (Decathlon CMA CGM) attack on a climb to not only reel the four leaders back in with 21km, but go clear himself onto the penultimate gravel sector. The counter-attacks were rolling behind Gautherat, who was dangling about 10 seconds ahead of the bunch, but it took a while for anyone to definitely catch him – that came with 14km to go when Per Stand Hagenes (Visma-Lease a Bike) dragged himself and Gautherat's teammate Rasmus Pedersen up to the leader.
The rest of the peloton rejoined the front of the race shortly after, with a big regrouping on the final gravel sector, 11km from the finish line in Tours. The attacks certainly didn't stop there, though, with various moves coming and going before a reduced group of 11 finally formed in the lead with 5km to go.
It was a cagey finale, with riders gambling between long-range attack attempts but also trying to save something for a possible sprint. Four riders – Strand Hagens, Skujiņš, Stuyven and Florian Senechal (Alpecin-Premier Tech) – broke off the front, rolling constant attacks, and it was a final big acceleration from Skujiņš with 1.3km to go that Strand Hagenes launched off of to go solo towards the line.
Stuyven was the quickest to react, finding himself in a desperate late chase between the leader and the chasers, but he couldn't quite reel the Visma in, and just about held off the pursuing group to grab second as Laporte sprinted to third.
Paris-Tours marks the last major one-day race of the season, with Visma-Lease a Bike claiming their 51st victory of 2026.
Results
Position | Rider (Country) Team | Time Gap |
|---|---|---|
1 | Per Strand Hagenes (Nor) Visma-Lease a Bike | 04:31:46 |
2 | Jasper Stuyven (Bel) Soudal-QuickStep | 00:00:02 |
3 | Christophe Laporte (Fra) Visma-Lease a Bike | |
4 | Matys Grisel (Fra) Lotto-Intermarché | |
5 | Jonas Abrahamsen (Nor) Uno-X Mobility | |
6 | Paul Lapeira (Fra) Decathlon CMA CGM | |
7 | Thibaud Gruel (Fra) Groupama-FDJ United | |
8 | Lewis Askey (GBr) NSN Cycling Team | |
9 | Florian Senechal (Fra) Alpecin-Premier Tech | |
10 | Toms Skujins (Lat) Lidl-Trek | 00:00:09 |
11 | Rasmus Søjberg Pedersen (Den) Decathlon CMA CGM | 00:00:12 |
12 | Fabio Christen (Swi) Pinarello-Q36.5 | 00:00:28 |
13 | Alexis Renard (Fra) Cofidis | 00:00:36 |
14 | Matis Louvel (Fra) NSN Cycling Team | |
15 | Axel Huens (Fra) Groupama-FDJ United | |
16 | Pepijn Reinderink (Ned) Soudal-QuickStep | |
17 | Victor Papon (Fra) Nice Metropole Cote D'Azur | |
18 | Adam Ťoupalík (Cze) Unibet Rose Rockets | |
19 | Aime De Gendt (Bel) Pinarello-Q36.5 | |
20 | Maxime Vezie (Fra) Cic Pro Cycling Academy | |
21 | Pierre Gautherat (Fra) Decathlon CMA CGM | |
22 | Romain Gregoire (Fra) Groupama-FDJ United | 00:00:39 |
23 | Riley Sheehan (USA) NSN Cycling Team | 00:00:55 |
24 | Maxime Jarnet (Fra) Van Rysel Roubaix | |
25 | Julius Van Den Berg (Ned) Picnic PostNL | |
26 | Yves Lampaert (Bel) Soudal-QuickStep | 00:00:58 |
27 | Jenno Berckmoes (Bel) Lotto-Intermarché | 00:01:13 |
28 | Tom Van Asbroeck (Bel) NSN Cycling Team | |
29 | Matteo Trentin (Ita) Tudor Pro Cycling | |
30 | Killian Theot (Fra) Van Rysel Roubaix | |
31 | Mike Teunissen (Ned) XDS Astana | |
32 | Davide Ballerini (Ita) XDS Astana | |
33 | Boje Patrick Frydkjær (Den) Lidl-Trek | |
34 | Sergi Darder Gari (Spa) Caja Rural-Seguros RGA | |
35 | Michiel Lambrecht (Bel) Team Flanders- Baloise | |
36 | Javier Ibañez Beltran De Salazar (Spa) Caja Rural-Seguros RGA | |
37 | Stefan Bissegger (Swi) Decathlon CMA CGM | |
38 | Axel Bouquet (Fra) St Michel- Preference Home- Auber93 | |
39 | Bastien Tronchon (Fra) Groupama-FDJ United | |
40 | Yohann Simon (Fra) St Michel- Preference Home- Auber93 | 00:01:16 |
41 | Sjoerd Bax (Ned) Pinarello-Q36.5 | |
42 | Rick Pluimers (Ned) Tudor Pro Cycling | 00:01:20 |
43 | Roy Hoogendoorn (Ned) Picnic PostNL | 00:01:30 |
44 | Edward Theuns (Bel) Lidl-Trek | |
45 | Erik Nordsaeter Resell (Nor) Uno-X Mobility | |
46 | Søren Wærenskjold (Nor) Uno-X Mobility | |
47 | Romain Cardis (Fra) St Michel- Preference Home- Auber93 | |
48 | Sente Sentjens (Bel) Alpecin-Premier Tech | |
49 | Lenaic Langella (Fra) Cic Pro Cycling Academy | 00:01:53 |
50 | Clement Izquierdo (Fra) Cofidis | |
51 | Arnaud De Lie (Bel) Lotto-Intermarché | 00:01:58 |
52 | Lander Loockx (Bel) Unibet Rose Rockets | |
53 | Joseph Brookes (GBr) Cofidis | |
54 | Pierre Thierry (Fra) Totalenergies | |
55 | Stefan Küng (Swi) Tudor Pro Cycling | |
56 | Ben Turner (GBr) Ineos Grenadiers | |
57 | Andrew Oscar Chamberlain (Aus) Decathlon CMA CGM | |
58 | Blume William Levy (Den) Uno-X Mobility | 00:02:01 |
59 | Florian Dauphin (Fra) Totalenergies | 00:02:07 |
60 | Emmanuel Houcou (Fra) Pinarello-Q36.5 | 00:02:10 |
61 | John Degenkolb (Ger) Picnic PostNL | 00:02:19 |
62 | Simon Goossens (Bel) Alpecin-Premier Tech | |
63 | Hugo Scala Jr. (USA) Modern Adventure | |
64 | Fred Wright (GBr) Pinarello-Q36.5 | |
65 | Lucas Beneteau (Fra) St Michel- Preference Home- Auber93 | |
66 | Thomas Champion (Fra) St Michel- Preference Home- Auber93 | |
67 | Dorian Godon (Fra) Ineos Grenadiers | |
68 | Viktor Soenens (Bel) Soudal-QuickStep | |
69 | Tim Merlier (Bel) Soudal-QuickStep | |
70 | Lennert Belmans (Bel) Alpecin-Premier Tech | |
71 | Pietro Mattio (Ita) Visma-Lease a Bike | |
72 | Kim Alexander Heiduk (Ger) Ineos Grenadiers | |
73 | Niels Driesen (Bel) Lotto-Intermarché | |
74 | Davide Toneatti (Ita) XDS Astana | |
75 | Axel Mariault (Fra) Cic Pro Cycling Academy | 00:02:54 |
76 | Baptiste Gillet (Fra) Nice Metropole Cote D'Azur | 00:04:07 |
77 | Paul Ourselin (Fra) Cofidis | 00:04:14 |
78 | Fabian Weiss (Swi) Tudor Pro Cycling | 00:04:26 |
79 | Joppe Heremans (Bel) Van Rysel Roubaix | 00:05:24 |
80 | Mathias Vacek (Cze) Lidl-Trek | 00:07:01 |
81 | Ben Oliver (NZl) Modern Adventure | |
82 | Léandre Lozouet (Fra) Cic Pro Cycling Academy | |
83 | Taco Van Der Hoorn (Ned) Lotto-Intermarché | |
84 | Arnaud Tendon (Swi) Van Rysel Roubaix | |
85 | Antoine Raugel (Fra) Van Rysel Roubaix | |
86 | Elias Maris (Bel) Team Flanders- Baloise | |
87 | Brem Deman (Bel) Team Flanders- Baloise | |
88 | Maël Guegan (Fra) Cic Pro Cycling Academy | |
89 | Noa Isidore (Fra) Decathlon CMA CGM | |
90 | Storm Ingebrigtsen (Nor) Uno-X Mobility | |
91 | Ian Lopez De San Roman (USA) Modern Adventure | |
92 | Martijn Rasenberg (Ned) Unibet Rose Rockets | 00:07:26 |
93 | Jonas Geens (Bel) Alpecin-Premier Tech | |
94 | Lennes Jacobs (Bel) Picnic PostNL | |
95 | Simon Guglielmi (Fra) St Michel- Preference Home- Auber93 | 00:07:41 |
96 | Clément Davy (Fra) Nice Metropole Cote D'Azur | |
97 | Jakob Söderqvist (Swe) Lidl-Trek | 00:09:59 |
98 | Cameron Rogers (Aus) Ineos Grenadiers | |
99 | Håkon Eiksund Øksnes (Nor) Uno-X Mobility | |
100 | Timo Kielich (Bel) Visma-Lease a Bike | |
101 | Jonas Rutsch (Ger) Lotto-Intermarché | 00:10:41 |
102 | Estanislao Calabuig (Spa) Caja Rural-Seguros RGA | |
103 | Elliot Rowe (GBr) Visma-Lease a Bike | |
104 | Brody Mcdonald (USA) Modern Adventure | |
105 | Daniel Smajkic Årnes (Nor) Van Rysel Roubaix | |
106 | Hugo Hofstetter (Fra) NSN Cycling Team | |
107 | Gorka Sorarrain Agirrezabala (Spa) Caja Rural-Seguros RGA | |
108 | Ward Vanhoof (Bel) Team Flanders- Baloise | |
109 | Mathieu Kockelmann (Lux) Lotto-Intermarché | 00:11:39 |
110 | Tom Mainguenaud (Fra) Nice Metropole Cote D'Azur | |
111 | Matteo Vercher (Fra) Totalenergies | |
112 | Tim Naberman (Ned) Picnic PostNL | |
113 | Tobias Svendsen Foss (Nor) Ineos Grenadiers | |
114 | Iker Villar Galdeano (Spa) Caja Rural-Seguros RGA | |
115 | Olivier Le Gac (Fra) Groupama-FDJ United | |
116 | Clément Russo (Fra) Groupama-FDJ United | |
117 | Fernando Gaviria Rendon (Col) Caja Rural-Seguros RGA | |
118 | Louis Hardouin (Fra) Van Rysel Roubaix | 00:11:58 |
119 | Ceriel Desal (Bel) Soudal-QuickStep | 00:15:16 |
120 | Jason Tesson (Fra) Totalenergies | 00:15:23 |
121 | Mathias Sanlaville (Fra) Cic Pro Cycling Academy | 00:15:52 |
122 | Carter Guichard (NZl) Nice Metropole Cote D'Azur | 00:16:43 |
123 | Jaakko Hänninen (Fin) Nice Metropole Cote D'Azur | |
124 | Filippo Fiorelli (Ita) Visma-Lease a Bike | 00:17:11 |
125 | Tyler Stites (USA) Modern Adventure | |
126 | Kristian Egholm (Den) Lidl-Trek | |
127 | Lorenzo De Longhi (Ita) Cofidis | |
128 | Bert Van Lerberghe (Bel) Soudal-QuickStep |
Subscribe to Cyclingnews for comprehensive race coverage of the UCI Gravel World Championships, alongside the final Monument of the season, Il Lombardia. Subscribers get unlimited access to exclusive analysis from our expert columnists, in-depth features and industry-leading tech insight. Plus, the Cyclingnews app lets you follow the action wherever you go! Join today.
