
Tour of Norway podium history | 2024 edition | Start list
Stage 1 | Stage 2 | Stage 3 | Stage 4

Map of the 2025 Tour of Norway
Sunday, June 1: 4th & Final Stage, Stavanger - Stavanger, 130 km

GC leader Matthew Brennan (left) wins the final stage.
Weather at the start/finish city of Stavanger at 2:50 PM, local time: 15C (59F), fair, with the wind from the southwest at 19 km/hr (12 mph). There is a 4% chance of rain.
The stage: Tour of Norway will conclude with the classic circuit in Stavanger, a course we’ve become well familiar with in recent years.
Alexander Kristoff has won this stage three years in a row, and as he chases his 100th professional victory, the Stavanger native will be hungry for a fourth consecutive win on the Vågen finish line.
The stage is identical to last year’s edition, featuring the Grisabakken, which will be climbed six times, each awarding KOM points. An intense stage that will encourage aggressive racing on the final day, ultimately deciding the overall winner of Tour of Norway 2025.
The race: Here's the race organizer's stage four report.
Stavanger shone brighter than ever as the 2025 Tour of Norway for men came to its conclusion.
Just like last year, the entire fourth stage was held on a local circuit in and around Stavanger, where the riders had to tackle the legendary Grisabakken climb no less than six times. 130 kilometers awaited, and with three intermediate sprints along the way, bonus seconds had the potential to play a key role in the general classification. Heading into the stage, young Brit Matthew Brennan (Team Visma | Lease a Bike) led the overall standings by 18 seconds over Victor Langellotti (Ineos Grenadiers) and 29 seconds over Swiss rider Jan Christen (UAE Team Emirates – XRG).
An early breakaway of four riders formed: Eirik Vang Aas (Team Coop – Repsol), Emil Toudal (Team ColoQuick), Wessel Mouris (Unibet Tietema Rockets), and Toon Aerts (Lotto). These riders would also contest the mountain points throughout the day.
The first time up Grisabakken, it was Denmark’s Emil Toudal who took maximum points, pulling level in the KOM standings with his teammate Joshua Gudnitz. Behind him followed Eirik Vang Aas and Toon Aerts. The trio repeated this order on the next ascent of Grisabakken, with Toudal taking over the lead in the mountains classification.
In the peloton, it was Israel – Premier Tech, Uno-X Mobility and Intermarché – Wanty who took control for their sprinters. Alexander Kristoff has been the king of Stavanger for the past three years, with three consecutive wins on the final stage of the Tour of Norway. No one knows the finish better than the 37-year-old, and both Uno-X Mobility and Kristoff himself were dreaming of a fourth in a row – in what would be the local hero’s final Tour of Norway.
The first intermediate sprint of the day went to Dutch rider Wessel Mouris, who picked up 3 bonus seconds and 10 points in the points competition – although it had no impact on the general or points standings. Just behind, Eirik Vang Aas and Toon Aerts crossed the line, taking 8 and 6 points respectively, along with 2 and 1 bonus seconds.
The remaining KOM points were shared between Toudal and Mouris in the breakaway, and it eventually became clear that it would be the Dane who would secure the mountains jersey.
The breakaway was reeled in on the final ascent of Grisabakken, with no major attacks coming from the peloton – setting the stage for a dramatic bunch sprint in Vågen. Entering the final kilometer, local hero Alexander Kristoff was perfectly positioned to sprint for his fourth straight win in Stavanger.
With Ethan Vernon and Matthew Brennan on his wheel, Kristoff launched his sprint with 250 meters to go. It looked for a long time like he would pull it off, but in the final 25 meters, Brennan just edged past – breaking Kristoff’s winning streak in Stavanger.
With the stage win, the young Brit also secured overall victory ahead of Victor Langellotti and Jan Christen. He also claimed both the points and young rider classifications. Emil Toudal was crowned king of the mountains after dominating Grisabakken from the break.
Complete results:
130 kilometers raced at an average speed of 44.961 km/hr
| 1 | Matthew Brennan | Team Visma | Lease a Bike | 2hr 53min 29sec |
| 2 | Alexander Kristoff | Uno-X Mobility | s.t. |
| 3 | Tobias Lund Andresen | Team Picnic PostNL | s.t. |
| 4 | Ethan Vernon | Israel-Premier Tech | s.t. |
| 5 | Tibor Del Grosso | Alpecin-Deceuninck | s.t. |
| 6 | Rasmus Tiller | Uno-X Mobility | s.t. |
| 7 | Huub Artz | Intermarché-Wanty | s.t. |
| 8 | Tim van Dijke | Red Bull-BORA-hansgrohe | s.t. |
| 9 | Karsten Feldmann | Team Coop-Repsol | s.t. |
| 10 | Stan Van Tricht | Alpecin-Deceuninck | s.t. |
| 11 | Tom Van Asbroeck | Israel-Premier Tech | s.t. |
| 12 | Arjen Livyns | Lotto | s.t. |
| 13 | Anton Stensby | Team Coop-Repsol | s.t. |
| 14 | Jan Christen | UAE Team Emirates-XRG | s.t. |
| 15 | Rui Oliveira | UAE Team Emirates-XRG | s.t. |
| 16 | Attila Valter | Team Visma | Lease a Bike | s.t. |
| 17 | Victor Langellotti | INEOS Grenadiers | s.t. |
| 18 | Jørgen Nordhagen | Team Visma | Lease a Bike | s.t. |
| 19 | Alessandro Covi | UAE Team Emirates-XRG | s.t. |
| 20 | Morten Nørtoft | Team Coloquick | s.t. |
| 21 | Gal Glivar | Alpecin-Deceuninck | s.t. |
| 22 | Ådne Holter | Uno-X Mobility | s.t. |
| 23 | Maxim Van Gils | Red Bull-BORA-hansgrohe | s.t. |
| 24 | Marius Innhaug Dahl | Norway | s.t. |
| 25 | Fredrik Dversnes | Uno-X Mobility | s.t. |
| 26 | Ludvik Holstad | Lillehammer CK Continental | s.t. |
| 27 | Sebastian Molano | UAE Team Emirates-XRG | s.t. |
| 28 | Filip Maciejuk | Red Bull-BORA-hansgrohe | s.t. |
| 29 | Óscar Rodríguez | INEOS Grenadiers | s.t. |
| 30 | Vincent Van Hemelen | Team Flanders-Baloise | s.t. |
| 31 | Per Strand Hagenes | Team Visma | Lease a Bike | s.t. |
| 32 | Kevin Vermaerke | Team Picnic PostNL | s.t. |
| 33 | Cedrik Bakke Christophersen | Unibet Tietema Rockets | s.t. |
| 34 | Bjoern Koerdt | Team Picnic PostNL | s.t. |
| 35 | AJ August | INEOS Grenadiers | s.t. |
| 36 | Lorenzo Rota | Intermarché-Wanty | s.t. |
| 37 | Malte Hellerup | Team Coloquick | s.t. |
| 38 | Jonas Geens | Team Flanders-Baloise | s.t. |
| 39 | Henri Vandenabeele | Lotto | s.t. |
| 40 | Hartthijs de Vries | Unibet Tietema Rockets | s.t. |
| 41 | Kiaan Watts | Israel-Premier Tech | s.t. |
| 42 | Ward Vanhoof | Team Flanders-Baloise | s.t. |
| 43 | Wessel Mouris | Unibet Tietema Rockets | s.t. |
| 44 | Tosh Van der Sande | Team Visma | Lease a Bike | 0:12 |
| 45 | Eirik Vang Aas | Team Coop-Repsol | 0:21 |
| 46 | Anders Skaarseth | Uno-X Mobility | 0:40 |
| 47 | Anton Palzer | Red Bull-BORA-hansgrohe | 0:48 |
| 48 | Felix Ørn-Kristoff | Intermarché-Wanty | s.t. |
| 49 | Storm Ingebrigtsen | Team Coop-Repsol | s.t. |
| 50 | Odd Christian Eiking | Unibet Tietema Rockets | s.t. |
| 51 | Eduardo Sepulveda | Lotto | s.t. |
| 52 | Omar Fraile | INEOS Grenadiers | s.t. |
| 53 | Alexander Kamp | Intermarché-Wanty | 0:52 |
| 54 | Toon Aerts | Lotto | 0:54 |
| 55 | Emil Toudal | Team Coloquick | s.t. |
| 56 | Even Thorvaldsen | Lillehammer CK Continental | 0:58 |
| 57 | Henrik Fjellheim | Lillehammer CK Continental | s.t. |
| 58 | Lionel Taminiaux | Lotto | 1:07 |
| 59 | Peder Dahl Strand | Norway | 1:08 |
| 60 | Laurens Sweeck | Alpecin-Deceuninck | 1:10 |
| 61 | Floris Van Tricht | Israel-Premier Tech | s.t. |
| 62 | Laurent Gervais | Project Echelon Racing | s.t. |
| 63 | Toralf Rydningen Martinsen | Lillehammer CK Continental | 1:13 |
| 64 | Brem Deman | Team Flanders-Baloise | s.t. |
| 65 | Georg Rydningen Martinsen | Lillehammer CK Continental | s.t. |
| 66 | Halvor Dolven | Intermarché-Wanty | s.t. |
| 67 | Kieran Haug | Project Echelon Racing | 1:15 |
| 68 | Elias Maris | Team Flanders-Baloise | s.t. |
| 69 | Thomas Gloag | Team Visma | Lease a Bike | s.t. |
| 70 | Jonas Gregaard | Lotto | s.t. |
| 71 | Vegard Stake Laengen | UAE Team Emirates-XRG | s.t. |
| 72 | Daniel Årnes | Norway | s.t. |
| 73 | Kasper Haugland | Norway | 1:24 |
| 74 | Martijn Budding | Unibet Tietema Rockets | 1:25 |
| 75 | Dylan Vandenstorme | Team Flanders-Baloise | 1:27 |
| 76 | Jelle Johannink | Unibet Tietema Rockets | 1:49 |
| 77 | Emil Herzog | Red Bull-BORA-hansgrohe | s.t. |
| 78 | Tim Naberman | Team Picnic PostNL | 3:14 |
| 79 | Krists Neilands | Israel-Premier Tech | 3:22 |
| 80 | Ryan Mullen | Red Bull-BORA-hansgrohe | 4:36 |
| 81 | Mikkel Bjerg | UAE Team Emirates-XRG | s.t. |
| 82 | William Blume Levy | Uno-X Mobility | s.t. |
| 83 | Juan Guillermo Martinez | Team Picnic PostNL | s.t. |
| 84 | Itamar Einhorn | Israel-Premier Tech | 7:47 |
| 85 | Mees Vlot | Team Picnic PostNL | 9:50 |
| 86 | Simen Evertsen-Hegreberg | Norway | s.t. |
| 87 | Brage Aulstad | Lillehammer CK Continental | s.t. |
| 88 | Joshua Gudnitz | Team Coloquick | s.t. |
Final GC after stage 4:
658.9 kilometers raced at an average speed of 42.402 km/hr
| 1 | Matthew Brennan | Team Visma | Lease a Bike | 15hr 32min 22sec |
| 2 | Victor Langellotti | INEOS Grenadiers | @ 28sec |
| 3 | Jan Christen | UAE Team Emirates-XRG | 0:39 |
| 4 | Tobias Lund Andresen | Team Picnic PostNL | 0:43 |
| 5 | Tibor Del Grosso | Alpecin-Deceuninck | s.t. |
| 6 | Huub Artz | Intermarché-Wanty | 0:44 |
| 7 | Ådne Holter | Uno-X Mobility | 0:46 |
| 8 | Jonas Geens | Team Flanders-Baloise | 0:55 |
| 9 | Fredrik Dversnes | Uno-X Mobility | 1:00 |
| 10 | Vincent Van Hemelen | Team Flanders-Baloise | s.t. |
| 11 | Alessandro Covi | UAE Team Emirates-XRG | 1:12 |
| 12 | Bjoern Koerdt | Team Picnic PostNL | s.t. |
| 13 | Jørgen Nordhagen | Team Visma | Lease a Bike | 1:20 |
| 14 | Attila Valter | Team Visma | Lease a Bike | 1:22 |
| 15 | Cedrik Bakke Christophersen | Unibet Tietema Rockets | s.t. |
| 16 | Arjen Livyns | Lotto | 1:30 |
| 17 | Morten Nørtoft | Team Coloquick | 1:44 |
| 18 | Maxim Van Gils | Red Bull-BORA-hansgrohe | 1:49 |
| 19 | Henri Vandenabeele | Lotto | 1:54 |
| 20 | Kevin Vermaerke | Team Picnic PostNL | 2:20 |
| 21 | Tom Van Asbroeck | Israel-Premier Tech | 2:28 |
| 22 | Storm Ingebrigtsen | Team Coop-Repsol | 2:37 |
| 23 | Malte Hellerup | Team Coloquick | 2:59 |
| 24 | Ward Vanhoof | Team Flanders-Baloise | 3:47 |
| 25 | Toralf Rydningen Martinsen | Lillehammer CK Continental | 4:39 |
| 26 | Per Strand Hagenes | Team Visma | Lease a Bike | 4:51 |
| 27 | Even Thorvaldsen | Lillehammer CK Continental | 5:31 |
| 28 | Anton Palzer | Red Bull-BORA-hansgrohe | 5:47 |
| 29 | Brem Deman | Team Flanders-Baloise | 5:49 |
| 30 | Tim van Dijke | Red Bull-BORA-hansgrohe | 6:21 |
| 31 | Filip Maciejuk | Red Bull-BORA-hansgrohe | s.t. |
| 32 | Elias Maris | Team Flanders-Baloise | 7:40 |
| 33 | Odd Christian Eiking | Unibet Tietema Rockets | 7:42 |
| 34 | Marius Innhaug Dahl | Norway | 7:47 |
| 35 | Wessel Mouris | Unibet Tietema Rockets | 7:49 |
| 36 | Alexander Kamp | Intermarché-Wanty | 8:25 |
| 37 | Hartthijs de Vries | Unibet Tietema Rockets | 9:03 |
| 38 | Mikkel Bjerg | UAE Team Emirates-XRG | 9:06 |
| 39 | Gal Glivar | Alpecin-Deceuninck | 9:27 |
| 40 | Vegard Stake Laengen | UAE Team Emirates-XRG | 9:28 |
| 41 | Óscar Rodríguez | INEOS Grenadiers | 10:05 |
| 42 | Jonas Gregaard | Lotto | 10:11 |
| 43 | Toon Aerts | Lotto | 10:13 |
| 44 | Lorenzo Rota | Intermarché-Wanty | 10:15 |
| 45 | Anton Stensby | Team Coop-Repsol | 10:28 |
| 46 | AJ August | INEOS Grenadiers | 10:58 |
| 47 | Ludvik Holstad | Lillehammer CK Continental | 11:05 |
| 48 | Alexander Kristoff | Uno-X Mobility | 11:47 |
| 49 | Kieran Haug | Project Echelon Racing | 11:50 |
| 50 | Ethan Vernon | Israel-Premier Tech | 12:04 |
| 51 | Felix Ørn-Kristoff | Intermarché-Wanty | 12:06 |
| 52 | William Blume Levy | Uno-X Mobility | 12:36 |
| 53 | Karsten Feldmann | Team Coop-Repsol | 13:06 |
| 54 | Daniel Årnes | Norway | 13:12 |
| 55 | Anders Skaarseth | Uno-X Mobility | 13:23 |
| 56 | Dylan Vandenstorme | Team Flanders-Baloise | 14:13 |
| 57 | Krists Neilands | Israel-Premier Tech | 14:15 |
| 58 | Kiaan Watts | Israel-Premier Tech | 14:16 |
| 59 | Halvor Dolven | Intermarché-Wanty | 14:35 |
| 60 | Henrik Fjellheim | Lillehammer CK Continental | 15:04 |
| 61 | Eduardo Sepulveda | Lotto | 15:07 |
| 62 | Sebastian Molano | UAE Team Emirates-XRG | 15:14 |
| 63 | Jelle Johannink | Unibet Tietema Rockets | 15:46 |
| 64 | Georg Rydningen Martinsen | Lillehammer CK Continental | 15:57 |
| 65 | Omar Fraile | INEOS Grenadiers | s.t. |
| 66 | Juan Guillermo Martinez | Team Picnic PostNL | 16:24 |
| 67 | Emil Toudal | Team Coloquick | 17:22 |
| 68 | Laurent Gervais | Project Echelon Racing | 18:33 |
| 69 | Rasmus Tiller | Uno-X Mobility | 18:38 |
| 70 | Martijn Budding | Unibet Tietema Rockets | 20:32 |
| 71 | Peder Dahl Strand | Norway | 20:53 |
| 72 | Stan Van Tricht | Alpecin-Deceuninck | 21:18 |
| 73 | Tim Naberman | Team Picnic PostNL | 23:20 |
| 74 | Kasper Haugland | Norway | s.t. |
| 75 | Eirik Vang Aas | Team Coop-Repsol | 23:42 |
| 76 | Thomas Gloag | Team Visma | Lease a Bike | 24:29 |
| 77 | Tosh Van der Sande | Team Visma | Lease a Bike | 27:11 |
| 78 | Rui Oliveira | UAE Team Emirates-XRG | 27:12 |
| 79 | Floris Van Tricht | Israel-Premier Tech | 27:13 |
| 80 | Emil Herzog | Red Bull-BORA-hansgrohe | 28:51 |
| 81 | Laurens Sweeck | Alpecin-Deceuninck | 30:33 |
| 82 | Brage Aulstad | Lillehammer CK Continental | 32:59 |
| 83 | Ryan Mullen | Red Bull-BORA-hansgrohe | 33:40 |
| 84 | Lionel Taminiaux | Lotto | 35:04 |
| 85 | Itamar Einhorn | Israel-Premier Tech | 38:47 |
| 86 | Joshua Gudnitz | Team Coloquick | 45:16 |
| 87 | Simen Evertsen-Hegreberg | Norway | 55:20 |
| 88 | Mees Vlot | Team Picnic PostNL | 55:22 |
Stage 4 map & profile:

Stage 4 map

Stage 4 profile
Saturday, May 31: Stage 3, Jørpeland - Heia, 141.6 km

Maxim Van Gils wins stage three. Photo: Getty Sport
David L. Stanley's masterful telling of his bout with skin cancer Melanoma: It Started with a Freckle is available in print, Kindle eBook and audiobook versions. To get your copy, just click on the Amazon link on the right.
Weather at the start city of Jørpeland, 31 km from the finish city of Heia, at 2:25 PM, local time: 16C (62F), partly cloudy, with the wind from the west at 11 km/hr (7 mph). No rain is forecast.
The stage: Tour of Norway returns to Strand Municipality and Jørpeland after four years, hosting Stage 3 for the men and Stage 1 for the women. Back in 2021, an incredibly strong Mads Pedersen won after an intense race on a course that truly tested the riders.
Unlike the last visit to Jørpeland, this year features an uphill finish at Heia – a 2.2 km climb at 7.7%. With six categorized climbs along the way and nearly 2,500 meters of elevation gain, this will likely be the toughest stage, favoring the climbers and shaping the general classification battle.
The race: Here's the stage three report from winner Maxim Van Gils' Team Red Bull-BORA-hansgrohe
It was a stage finish tailor-made for Maxim Van Gils: on the explosive final climb to Heia, the Belgian rider played to his strengths and sprinted to victory. On stage 3 of the Tour of Norway, the Red Bull – BORA – hansgrohe rider crossed the line with his arms aloft – celebrating his second win of the season.
The team had clearly marked this short but challenging 142-kilometre stage as a key opportunity. After a narrow defeat to race leader Matthew Brennan on stage 2, Van Gils came back with a vengeance – and turned the tables today. From the start, Red Bull – BORA – hansgrohe committed fully to setting up a finale on the decisive climb. The favourites quickly emerged on the steep slopes. Van Gils stayed sharp, covered every move, and remained perfectly positioned. On the final 250 metres, a thrilling battle unfolded with Brennan and Jan Christen. Brennan launched the sprint early, but Van Gils timed his move perfectly, kicking 50 metres from the line to take a confident and commanding victory.
Plan perfectly executed
Maxim Van Gils: "My full focus was on today’s stage, and I’m really happy I could take the win. After everything that’s happened recently, I was determined to come here to the Tour of Norway and show what I’m capable of. Yesterday already gave me confidence, so I was highly motivated to finish the job today – and it feels great that it all came together."
Shane Archbold, DS: “It went exactly as we had planned. The guys made the race tough because we knew it would suit Maxim even more. It's great that he was able to finish the job like this. But it's a shame that he's not at the front of the overall standings due to the crash on the first day.”
Complete results:
141.6 kilometers raced at an average speed of 41.794 km/hr
| 1 | Maxim Van Gils | Red Bull-BORA-hansgrohe | 3hr 23min 17sec |
| 2 | Matthew Brennan | Team Visma | Lease a Bike | s.t. |
| 3 | Victor Langellotti | INEOS Grenadiers | s.t. |
| 4 | Jan Christen | UAE Team Emirates-XRG | s.t. |
| 5 | Huub Artz | Intermarché-Wanty | @ 3sec |
| 6 | Gal Glivar | Alpecin-Deceuninck | s.t. |
| 7 | Ådne Holter | Uno-X Mobility | 0:05 |
| 8 | Jørgen Nordhagen | Team Visma | Lease a Bike | s.t. |
| 9 | Odd Christian Eiking | Unibet Tietema Rockets | s.t. |
| 10 | Tibor Del Grosso | Alpecin-Deceuninck | 0:08 |
| 11 | Tobias Lund Andresen | Team Picnic PostNL | s.t. |
| 12 | AJ August | INEOS Grenadiers | 0:14 |
| 13 | Jonas Geens | Team Flanders-Baloise | 0:16 |
| 14 | Eduardo Sepulveda | Lotto | s.t. |
| 15 | Fredrik Dversnes | Uno-X Mobility | 0:19 |
| 16 | Toralf Rydningen Martinsen | Lillehammer CK Continental | s.t. |
| 17 | Vincent Van Hemelen | Team Flanders-Baloise | s.t. |
| 18 | Cedrik Bakke Christophersen | Unibet Tietema Rockets | s.t. |
| 19 | Henrik Fjellheim | Lillehammer CK Continental | 0:31 |
| 20 | Bjoern Koerdt | Team Picnic PostNL | s.t. |
| 21 | Alessandro Covi | UAE Team Emirates-XRG | s.t. |
| 22 | Krists Neilands | Israel-Premier Tech | 0:39 |
| 23 | Toon Aerts | Lotto | s.t. |
| 24 | Morten Nørtoft | Team Coloquick | 0:41 |
| 25 | Attila Valter | Team Visma | Lease a Bike | s.t. |
| 26 | Óscar Rodríguez | INEOS Grenadiers | s.t. |
| 27 | Marius Innhaug Dahl | Norway | 0:46 |
| 28 | Lorenzo Rota | Intermarché-Wanty | s.t. |
| 29 | Arjen Livyns | Lotto | 0:49 |
| 30 | Kevin Vermaerke | Team Picnic PostNL | 1:00 |
| 31 | Kieran Haug | Project Echelon Racing | 1:06 |
| 32 | Georg Rydningen Martinsen | Lillehammer CK Continental | 1:09 |
| 33 | Henri Vandenabeele | Lotto | 1:13 |
| 34 | Storm Ingebrigtsen | Team Coop-Repsol | s.t. |
| 35 | Malte Hellerup | Team Coloquick | s.t. |
| 36 | Ward Vanhoof | Team Flanders-Baloise | s.t. |
| 37 | Tom Van Asbroeck | Israel-Premier Tech | 1:30 |
| 38 | Anton Palzer | Red Bull-BORA-hansgrohe | 1:38 |
| 39 | Even Thorvaldsen | Lillehammer CK Continental | s.t. |
| 40 | Halvor Dolven | Intermarché-Wanty | s.t. |
| 41 | Juan Guillermo Martinez | Team Picnic PostNL | 2:19 |
| 42 | Brem Deman | Team Flanders-Baloise | 2:48 |
| 43 | Elias Maris | Team Flanders-Baloise | s.t. |
| 44 | Tim van Dijke | Red Bull-BORA-hansgrohe | 2:56 |
| 45 | Filip Maciejuk | Red Bull-BORA-hansgrohe | s.t. |
| 46 | Mikkel Bjerg | UAE Team Emirates-XRG | 3:37 |
| 47 | William Blume Levy | Uno-X Mobility | s.t. |
| 48 | Anders Skaarseth | Uno-X Mobility | s.t. |
| 49 | Vegard Stake Laengen | UAE Team Emirates-XRG | s.t. |
| 50 | Omar Fraile | INEOS Grenadiers | 3:45 |
| 51 | Per Strand Hagenes | Team Visma | Lease a Bike | 3:53 |
| 52 | Wessel Mouris | Unibet Tietema Rockets | 4:24 |
| 53 | Alexander Kamp | Intermarché-Wanty | 4:31 |
| 54 | Emil Toudal | Team Coloquick | s.t. |
| 55 | Jonas Gregaard | Lotto | 6:01 |
| 56 | Laurent Gervais | Project Echelon Racing | s.t. |
| 57 | Vang Aas Eirik | Team Coop-Repsol | 6:32 |
| 58 | Brage Aulstad | Lillehammer CK Continental | s.t. |
| 59 | Hartthijs de Vries | Unibet Tietema Rockets | 6:36 |
| 60 | Felix Ørn-Kristoff | Intermarché-Wanty | 8:00 |
| 61 | Ethan Vernon | Israel-Premier Tech | 8:52 |
| 62 | Kiaan Watts | Israel-Premier Tech | s.t. |
| 63 | Thomas Gloag | Team Visma | Lease a Bike | s.t. |
| 64 | Dylan Vandenstorme | Team Flanders-Baloise | s.t. |
| 65 | Anton Stensby | Team Coop-Repsol | s.t. |
| 66 | Ludvik Holstad | Lillehammer CK Continental | s.t. |
| 67 | Karsten Feldmann | Team Coop-Repsol | s.t. |
| 68 | Rasmus Tiller | Uno-X Mobility | s.t. |
| 69 | Daniel Årnes | Norway | s.t. |
| 70 | Jelle Johannink | Unibet Tietema Rockets | 10:17 |
| 71 | Tim Naberman | Team Picnic PostNL | s.t. |
| 72 | Stan Van Tricht | Alpecin-Deceuninck | 10:55 |
| 73 | Laurens Sweeck | Alpecin-Deceuninck | s.t. |
| 74 | Martijn Budding | Unibet Tietema Rockets | s.t. |
| 75 | Kasper Haugland | Norway | s.t. |
| 76 | Alexander Kristoff | Uno-X Mobility | s.t. |
| 77 | Lionel Taminiaux | Lotto | s.t. |
| 78 | Emil Herzog | Red Bull-BORA-hansgrohe | s.t. |
| 79 | Ryan Mullen | Red Bull-BORA-hansgrohe | 11:02 |
| 80 | Sebastian Molano | UAE Team Emirates-XRG | s.t. |
| 81 | Rui Oliveira | UAE Team Emirates-XRG | 11:42 |
| 82 | Tosh Van der Sande | Team Visma | Lease a Bike | 15:51 |
| 83 | Simen Evertsen-Hegreberg | Norway | 15:59 |
| 84 | Trym Brennsæter | Norway | s.t. |
| 85 | Peder Dahl Strand | Norway | s.t. |
| 86 | Mees Vlot | Team Picnic PostNL | 16:01 |
| 87 | Jonas Walton | Project Echelon Racing | s.t. |
| 88 | Johan Price-Pejtersen | Alpecin-Deceuninck | s.t. |
| 89 | Itamar Einhorn | Israel-Premier Tech | 16:23 |
| 90 | Floris Van Tricht | Israel-Premier Tech | 16:42 |
| 91 | Joshua Gudnitz | Team Coloquick | 18:32 |
GC after stage 3:
528.9 kilometers raced so far at an average speed of 41.808 km/hr
| 1 | Matthew Brennan | Team Visma | Lease a Bike | 12hr 39min 3sec |
| 2 | Victor Langellotti | INEOS Grenadiers | @ 18sec |
| 3 | Jan Christen | UAE Team Emirates-XRG | 0:29 |
| 4 | Tibor Del Grosso | Alpecin-Deceuninck | 0:33 |
| 5 | Huub Artz | Intermarché-Wanty | 0:34 |
| 6 | Ådne Holter | Uno-X Mobility | 0:36 |
| 7 | Tobias Lund Andresen | Team Picnic PostNL | 0:37 |
| 8 | Jonas Geens | Team Flanders-Baloise | 0:45 |
| 9 | Fredrik Dversnes | Uno-X Mobility | 0:50 |
| 10 | Vincent Van Hemelen | Team Flanders-Baloise | s.t. |
| 11 | Bjoern Koerdt | Team Picnic PostNL | 1:02 |
| 12 | Alessandro Covi | UAE Team Emirates-XRG | s.t. |
| 13 | Jørgen Nordhagen | Team Visma | Lease a Bike | 1:10 |
| 14 | Cedrik Bakke Christophersen | Unibet Tietema Rockets | 1:12 |
| 15 | Attila Valter | Team Visma | Lease a Bike | s.t. |
| 16 | Arjen Livyns | Lotto | 1:20 |
| 17 | Morten Nørtoft | Team Coloquick | 1:34 |
| 18 | Maxim Van Gils | Red Bull-BORA-hansgrohe | 1:39 |
| 19 | Storm Ingebrigtsen | Team Coop-Repsol | s.t. |
| 20 | Henri Vandenabeele | Lotto | 1:44 |
| 21 | Kevin Vermaerke | Team Picnic PostNL | 2:10 |
| 22 | Tom Van Asbroeck | Israel-Premier Tech | 2:18 |
| 23 | Malte Hellerup | Team Coloquick | 2:49 |
| 24 | Toralf Rydningen Martinsen | Lillehammer CK Continental | 3:16 |
| 25 | Ward Vanhoof | Team Flanders-Baloise | 3:37 |
| 26 | Mikkel Bjerg | UAE Team Emirates-XRG | 4:20 |
| 27 | Even Thorvaldsen | Lillehammer CK Continental | 4:23 |
| 28 | Brem Deman | Team Flanders-Baloise | 4:26 |
| 29 | Per Strand Hagenes | Team Visma | Lease a Bike | 4:41 |
| 30 | Anton Palzer | Red Bull-BORA-hansgrohe | 4:49 |
| 31 | Tim van Dijke | Red Bull-BORA-hansgrohe | 6:11 |
| 32 | Filip Maciejuk | Red Bull-BORA-hansgrohe | s.t. |
| 33 | Elias Maris | Team Flanders-Baloise | 6:15 |
| 34 | Odd Christian Eiking | Unibet Tietema Rockets | 6:44 |
| 35 | Alexander Kamp | Intermarché-Wanty | 7:23 |
| 36 | Marius Innhaug Dahl | Norway | 7:37 |
| 37 | Wessel Mouris | Unibet Tietema Rockets | 7:48 |
| 38 | William Blume Levy | Uno-X Mobility | 7:50 |
| 39 | Vegard Stake Laengen | UAE Team Emirates-XRG | 8:03 |
| 40 | Jonas Gregaard | Lotto | 8:46 |
| 41 | Hartthijs de Vries | Unibet Tietema Rockets | 8:53 |
| 42 | Toon Aerts | Lotto | 9:13 |
| 43 | Gal Glivar | Alpecin-Deceuninck | 9:17 |
| 44 | Óscar Rodríguez | INEOS Grenadiers | 9:55 |
| 45 | Lorenzo Rota | Intermarché-Wanty | 10:05 |
| 46 | Anton Stensby | Team Coop-Repsol | 10:18 |
| 47 | Kieran Haug | Project Echelon Racing | 10:25 |
| 48 | Krists Neilands | Israel-Premier Tech | 10:43 |
| 49 | AJ August | INEOS Grenadiers | 10:48 |
| 50 | Ludvik Holstad | Lillehammer CK Continental | 10:55 |
| 51 | Felix Ørn-Kristoff | Intermarché-Wanty | 11:08 |
| 52 | Juan Guillermo Martinez | Team Picnic PostNL | 11:38 |
| 53 | Alexander Kristoff | Uno-X Mobility | 11:43 |
| 54 | Daniel Årnes | Norway | 11:47 |
| 55 | Ethan Vernon | Israel-Premier Tech | 11:54 |
| 56 | Anders Skaarseth | Uno-X Mobility | 12:33 |
| 57 | Dylan Vandenstorme | Team Flanders-Baloise | 12:36 |
| 58 | Karsten Feldmann | Team Coop-Repsol | 12:56 |
| 59 | Halvor Dolven | Intermarché-Wanty | 13:12 |
| 60 | Jelle Johannink | Unibet Tietema Rockets | 13:47 |
| 61 | Henrik Fjellheim | Lillehammer CK Continental | 13:56 |
| 62 | Kiaan Watts | Israel-Premier Tech | 14:06 |
| 63 | Eduardo Sepulveda | Lotto | 14:09 |
| 64 | Georg Rydningen Martinsen | Lillehammer CK Continental | 14:34 |
| 65 | Omar Fraile | INEOS Grenadiers | 14:59 |
| 66 | Sebastian Molano | UAE Team Emirates-XRG | 15:04 |
| 67 | Emil Toudal | Team Coloquick | 16:18 |
| 68 | Laurent Gervais | Project Echelon Racing | 17:13 |
| 69 | Rasmus Tiller | Uno-X Mobility | 18:28 |
| 70 | Martijn Budding | Unibet Tietema Rockets | 18:57 |
| 71 | Peder Dahl Strand | Norway | 19:35 |
| 72 | Tim Naberman | Team Picnic PostNL | 19:56 |
| 73 | Stan Van Tricht | Alpecin-Deceuninck | 21:08 |
| 74 | Kasper Haugland | Norway | 21:46 |
| 75 | Brage Aulstad | Lillehammer CK Continental | 22:59 |
| 76 | Thomas Gloag | Team Visma | Lease a Bike | 23:04 |
| 77 | Vang Aas Eirik | Team Coop-Repsol | 23:16 |
| 78 | Floris Van Tricht | Israel-Premier Tech | 25:53 |
| 79 | Tosh Van der Sande | Team Visma | Lease a Bike | 26:49 |
| 80 | Emil Herzog | Red Bull-BORA-hansgrohe | 26:52 |
| 81 | Rui Oliveira | UAE Team Emirates-XRG | 27:02 |
| 82 | Johan Price-Pejtersen | Alpecin-Deceuninck | 28:36 |
| 83 | Ryan Mullen | Red Bull-BORA-hansgrohe | 28:54 |
| 84 | Laurens Sweeck | Alpecin-Deceuninck | 29:13 |
| 85 | Itamar Einhorn | Israel-Premier Tech | 30:50 |
| 86 | Trym Brennsæter | Norway | 32:40 |
| 87 | Lionel Taminiaux | Lotto | 33:47 |
| 88 | Joshua Gudnitz | Team Coloquick | 35:16 |
| 89 | Simen Evertsen-Hegreberg | Norway | 45:20 |
| 90 | Mees Vlot | Team Picnic PostNL | 45:22 |
| 91 | Jonas Walton | Project Echelon Racing | 52:20 |
Stage 3 map & profile:

Stage 3 map

Stage 3 profile
Friday, May 30: Stage 2, Egersund - Oltedal, 208.1 km

Matthew Brennan wins the stage and becomes the new GC leader. Photo: Kjetil Birkedal Pedersen
Bill and Carol McGann's book The Story of the Giro d'Italia, A Year-by-Year History of the Tour of Italy, Vol 1: 1909 - 1970 is available in print, Kindle eBook & audiobook versions. To get your copy, just click on the Amazon link on the right.
Weather at the finish city of Oltedal at 2:10 PM, local time: 13C (56F), cloudy, with the wind from the west-northwest at 18 km/hr (11 mph). There is a 6% chance of rain.
The stage: The longest stage of the race starts in Egersund, a familiar host city for Tour of Norway. The peloton heads south to Flekkefjord before turning north again via Tonstad and Sirdalen, where sprint points and bonus seconds will be awarded, most likely to a breakaway.
Before reaching this point, the riders will tackle Rundtjørn after 36 kilometers – a 4.4 km climb with an average gradient of 7.5%. The only Category 1 climb of the race appears after 156 kilometers: Sirdalstoppen, which will be decisive in the battle for the KOM jersey.
From there, the peloton moves westward past Tjørhom, descending Hunnedalen to Byrkjedal, where positioning will be crucial ahead of the uphill finish in Oltedal. Within the final 10 kilometers, Dirdalsbakken (1.6 km at 8%) offers a chance to apply extra pressure. Just five kilometers later, the finish climb to Oltedal awaits. 2.3 km at 5%, an ideal opportunity for puncheurs to make their mark.
The race: Here's the report from stage winner Matthew Brennan's Team Visma | Lease a Bike.
Matthew Brennan has claimed victory in the second stage of the Tour of Norway. The young Brit sprinted brilliantly to the stage win, also taking over the lead in the general classification.
“This one was really special”, a proud Brennan says afterwards. “A lot of riders tried to attack near the end, but the team did everything they could to put me in a good position for the finish. To be able to finish it off like that is just incredible.”
The 19-year-old rider credited his eighth win of the season to the strong efforts of his teammates. “Everyone played a key role today, especially in that chaotic finale. We were always well-positioned and controlled the race. That gives such a great feeling.” Sports director Frans Maassen adds: “This was even more impressive than our attempt yesterday. A fantastic job by Matthew, he crowned the hard work of the entire team.”
Maassen was referring in particular to Thomas Gloag’s attack on the climb of the Sirdalstoppen. That move allowed Team Visma | Lease a Bike to sit back in the bunch towards the finish of the second stage. “That was a very smart move from us”, Maassen says. “We followed it up strongly with great work from Tosh, Attila, and Jørgen, and then in the final with Per. Of course, Matthew still had to have the legs, but once again, he showed that. Incredible.”
Robbert de Groot, Head of Development: “Matthew is going through an incredible development. The fact that the team is riding for him at such a young age is something he’s earned himself. He currently has the most victories of any rider in our team this season.” Brennan’s win is his eighth, bringing the WorldTeam’s tally to seventeen victories this cycling year.
The so-called White Jersey group, consisting of riders under 23, is being given plenty of opportunities to prove themselves in various races and with Brennan, those chances are turning into standout victories. “This is a very special situation, and it shows we’re heading in the right direction as a team. Matthew’s performances - today again with support from former Development Team riders Per and Jørgen - send a clear message to his peers. It’s a huge motivation for the young guys who are already knocking on the door”, De Groot concludes.
Complete results:
208.1 kilometers rraced at an average speed of 40.382 km/hr
| 1 | Matthew Brennan | Team Visma | Lease a Bike | 5hr 9min 12sec |
| 2 | Maxim Van Gils | Red Bull-BORA-hansgrohe | s.t. |
| 3 | Victor Langellotti | INEOS Grenadiers | s.t. |
| 4 | Tobias Lund Andresen | Team Picnic PostNL | @ 3sec |
| 5 | Jan Christen | UAE Team Emirates-XRG | s.t. |
| 6 | Jonas Geens | Team Flanders-Baloise | s.t. |
| 7 | Tibor Del Grosso | Alpecin-Deceuninck | s.t. |
| 8 | Bjoern Koerdt | Team Picnic PostNL | 0:05 |
| 9 | Ludvik Holstad | Lillehammer CK Continental | s.t. |
| 10 | Ådne Holter | Uno-X Mobility | s.t. |
| 11 | Odd Christian Eiking | Unibet Tietema Rockets | s.t. |
| 12 | Huub Artz | Intermarché-Wanty | s.t. |
| 13 | Arjen Livyns | Lotto | s.t. |
| 14 | Morten Nørtoft | Team Coloquick | s.t. |
| 15 | Elias Maris | Team Flanders-Baloise | s.t. |
| 16 | Vincent Van Hemelen | Team Flanders-Baloise | s.t. |
| 17 | Fredrik Dversnes | Uno-X Mobility | s.t. |
| 18 | Cedrik Bakke Christophersen | Unibet Tietema Rockets | s.t. |
| 19 | Henri Vandenabeele | Lotto | s.t. |
| 20 | Alessandro Covi | UAE Team Emirates-XRG | s.t. |
| 21 | Attila Valter | Team Visma | Lease a Bike | s.t. |
| 22 | Ward Vanhoof | Team Flanders-Baloise | s.t. |
| 23 | Malte Hellerup | Team Coloquick | 0:14 |
| 24 | Ethan Vernon | Israel-Premier Tech | s.t. |
| 25 | Floris Van Tricht | Israel-Premier Tech | s.t. |
| 26 | Jelle Johannink | Unibet Tietema Rockets | 0:17 |
| 27 | Storm Ingebrigtsen | Team Coop-Repsol | s.t. |
| 28 | Marius Innhaug Dahl | Norway | s.t. |
| 29 | Jørgen Nordhagen | Team Visma | Lease a Bike | s.t. |
| 30 | Mikkel Bjerg | UAE Team Emirates-XRG | s.t. |
| 31 | Gal Glivar | Alpecin-Deceuninck | s.t. |
| 32 | Óscar Rodríguez | INEOS Grenadiers | s.t. |
| 33 | Toralf Rydningen Martinsen | Lillehammer CK Continental | s.t. |
| 34 | Tom Van Asbroeck | Israel-Premier Tech | 0:22 |
| 35 | Kieran Haug | Project Echelon Racing | s.t. |
| 36 | Dylan Vandenstorme | Team Flanders-Baloise | s.t. |
| 37 | Georg Rydningen Martinsen | Lillehammer CK Continental | s.t. |
| 38 | Henrik Fjellheim | Lillehammer CK Continental | s.t. |
| 39 | Hartthijs de Vries | Unibet Tietema Rockets | s.t. |
| 40 | Alexander Kristoff | Uno-X Mobility | s.t. |
| 41 | Juan Guillermo Martinez | Team Picnic PostNL | s.t. |
| 42 | Per Strand Hagenes | Team Visma | Lease a Bike | s.t. |
| 43 | Lorenzo Rota | Intermarché-Wanty | s.t. |
| 44 | Kevin Vermaerke | Team Picnic PostNL | s.t. |
| 45 | Jonas Gregaard | Lotto | 0:50 |
| 46 | Eduardo Sepulveda | Lotto | s.t. |
| 47 | Brem Deman | Team Flanders-Baloise | s.t. |
| 48 | Even Thorvaldsen | Lillehammer CK Continental | s.t. |
| 49 | Anton Stensby | Team Coop-Repsol | 1:00 |
| 50 | Krists Neilands | Israel-Premier Tech | 1:07 |
| 51 | Felix Ørn-Kristoff | Intermarché-Wanty | 1:13 |
| 52 | Stan Van Tricht | Alpecin-Deceuninck | 1:16 |
| 53 | Anton Palzer | Red Bull-BORA-hansgrohe | s.t. |
| 54 | Alexander Kamp | Intermarché-Wanty | 1:18 |
| 55 | Tim van Dijke | Red Bull-BORA-hansgrohe | 1:20 |
| 56 | Filip Maciejuk | Red Bull-BORA-hansgrohe | s.t. |
| 57 | AJ August | INEOS Grenadiers | 1:37 |
| 58 | Toon Aerts | Lotto | 2:00 |
| 59 | Wessel Mouris | Unibet Tietema Rockets | 2:12 |
| 60 | William Blume Levy | Uno-X Mobility | 2:13 |
| 61 | Laurent Gervais | Project Echelon Racing | 2:15 |
| 62 | Kiaan Watts | Israel-Premier Tech | s.t. |
| 63 | Omar Fraile | INEOS Grenadiers | 2:17 |
| 64 | Rui Oliveira | UAE Team Emirates-XRG | s.t. |
| 65 | Daniel Årnes | Norway | 2:20 |
| 66 | Ethan Craine | Project Echelon Racing | 2:44 |
| 67 | Dahl Strand Peder | Norway | 2:48 |
| 68 | Emil Herzog | Red Bull-BORA-hansgrohe | 2:54 |
| 69 | Trym Brennsæter | Norway | 3:38 |
| 70 | Karsten Feldmann | Team Coop-Repsol | s.t. |
| 71 | Vegard Stake Laengen | UAE Team Emirates-XRG | s.t. |
| 72 | Sebastian Molano | UAE Team Emirates-XRG | s.t. |
| 73 | Johan Price-Pejtersen | Alpecin-Deceuninck | s.t. |
| 74 | Ryan Mullen | Red Bull-BORA-hansgrohe | 4:49 |
| 75 | Halvor Dolven | Intermarché-Wanty | 4:54 |
| 76 | Artem Shmidt | INEOS Grenadiers | 5:15 |
| 77 | Thomas Gloag | Team Visma | Lease a Bike | s.t. |
| 78 | Emil Toudal | Team Coloquick | s.t. |
| 79 | Laurens Sweeck | Alpecin-Deceuninck | s.t. |
| 80 | Tim Naberman | Team Picnic PostNL | 7:36 |
| 81 | Martijn Budding | Unibet Tietema Rockets | s.t. |
| 82 | Rasmus Tiller | Uno-X Mobility | s.t. |
| 83 | Kasper Haugland | Norway | s.t. |
| 84 | Itamar Einhorn | Israel-Premier Tech | s.t. |
| 85 | Brage Aulstad | Lillehammer CK Continental | s.t. |
| 86 | Anders Skaarseth | Uno-X Mobility | s.t. |
| 87 | Tosh Van der Sande | Team Visma | Lease a Bike | s.t. |
| 88 | Mees Vlot | Team Picnic PostNL | 16:18 |
| 89 | Simen Evertsen-Hegreberg | Norway | s.t. |
| 90 | Arne Marit | Intermarché-Wanty | s.t. |
| 91 | Lionel Taminiaux | Lotto | s.t. |
| 92 | Joshua Gudnitz | Team Coloquick | s.t. |
| 93 | Eirik Vang Aas | Team Coop-Repsol | s.t. |
| 94 | Colby Lange | Project Echelon Racing | 23:04 |
| 95 | Jonas Walton | Project Echelon Racing | 23:16 |
GC after stage 2:
387.3 kilometers raced so far at an average speed of 41.800 km/hr
| 1 | Matthew Brennan | Team Visma | Lease a Bike | 9hr 15min 56sec |
| 2 | Victor Langellotti | INEOS Grenadiers | @ 12sec |
| 3 | Tibor Del Grosso | Alpecin-Deceuninck | 0:15 |
| 4 | Storm Ingebrigtsen | Team Coop-Repsol | 0:16 |
| 5 | Tobias Lund Andresen | Team Picnic PostNL | 0:19 |
| 6 | Jan Christen | UAE Team Emirates-XRG | s.t. |
| 7 | Jonas Geens | Team Flanders-Baloise | s.t. |
| 8 | Ådne Holter | Uno-X Mobility | 0:21 |
| 9 | Bjoern Koerdt | Team Picnic PostNL | s.t. |
| 10 | Fredrik Dversnes | Uno-X Mobility | s.t. |
| 11 | Huub Artz | Intermarché-Wanty | s.t. |
| 12 | Arjen Livyns | Lotto | s.t. |
| 13 | Alessandro Covi | UAE Team Emirates-XRG | s.t. |
| 14 | Vincent Van Hemelen | Team Flanders-Baloise | s.t. |
| 15 | Henri Vandenabeele | Lotto | s.t. |
| 16 | Attila Valter | Team Visma | Lease a Bike | s.t. |
| 17 | Mikkel Bjerg | UAE Team Emirates-XRG | 0:33 |
| 18 | Tom Van Asbroeck | Israel-Premier Tech | 0:38 |
| 19 | Alexander Kristoff | Uno-X Mobility | s.t. |
| 20 | PerStrand Hagenes | Team Visma | Lease a Bike | s.t. |
| 21 | Morten Nørtoft | Team Coloquick | 0:43 |
| 22 | Cedrik Bakke Christophersen | Unibet Tietema Rockets | s.t. |
| 23 | Jørgen Nordhagen | Team Visma | Lease a Bike | 0:55 |
| 24 | Kevin Vermaerke | Team Picnic PostNL | 1:00 |
| 25 | Anton Stensby | Team Coop-Repsol | 1:16 |
| 26 | Malte Hellerup | Team Coloquick | 1:26 |
| 27 | Brem Deman | Team Flanders-Baloise | 1:28 |
| 28 | Maxim Van Gils | Red Bull-BORA-hansgrohe | 1:39 |
| 29 | Ludvik Holstad | Lillehammer CK Continental | 1:53 |
| 30 | Hartthijs de Vries | Unibet Tietema Rockets | 2:07 |
| 31 | Ward Vanhoof | Team Flanders-Baloise | 2:14 |
| 32 | Jonas Gregaard | Lotto | 2:35 |
| 33 | Even Thorvaldsen | Lillehammer CK Continental | s.t. |
| 34 | Alexander Kamp | Intermarché-Wanty | 2:42 |
| 35 | Daniel Årnes | Norway | 2:45 |
| 36 | Toralf Rydningen Martinsen | Lillehammer CK Continental | 2:47 |
| 37 | Ethan Vernon | Israel-Premier Tech | 2:52 |
| 38 | Felix Ørn-Kristoff | Intermarché-Wanty | 2:58 |
| 39 | Anton Palzer | Red Bull-BORA-hansgrohe | 3:01 |
| 40 | Tim van Dijke | Red Bull-BORA-hansgrohe | 3:05 |
| 41 | Filip Maciejuk | Red Bull-BORA-hansgrohe | s.t. |
| 42 | Wessel Mouris | Unibet Tietema Rockets | 3:14 |
| 43 | Elias Maris | Team Flanders-Baloise | 3:17 |
| 44 | Jelle Johannink | Unibet Tietema Rockets | 3:26 |
| 45 | Peder Dahl Strand | Norway | 3:26 |
| 46 | Dylan Vandenstorme | Team Flanders-Baloise | 3:34 |
| 47 | Sebastian Molano | UAE Team Emirates-XRG | 3:54 |
| 48 | Karsten Feldmann | Team Coop-Repsol | s.t. |
| 49 | William Blume Levy | Uno-X Mobility | 4:03 |
| 50 | Vegard Stake Laengen | UAE Team Emirates-XRG | 4:16 |
| 51 | Kiaan Watts | Israel-Premier Tech | 5:04 |
| 52 | Odd Christian Eiking | Unibet Tietema Rockets | 6:29 |
| 53 | Marius Innhaug Dahl | Norway | 6:41 |
| 54 | Artem Shmidt | INEOS Grenadiers | 7:22 |
| 55 | Martijn Budding | Unibet Tietema Rockets | 7:52 |
| 56 | Toon Aerts | Lotto | 8:24 |
| 57 | Anders Skaarseth | Uno-X Mobility | 8:46 |
| 58 | Floris Van Tricht | Israel-Premier Tech | 9:01 |
| 59 | Gal Glivar | Alpecin-Deceuninck | 9:04 |
| 60 | Óscar Rodríguez | INEOS Grenadiers | s.t. |
| 61 | Kieran Haug | Project Echelon Racing | 9:09 |
| 62 | Juan Guillermo Martinez | Team Picnic PostNL | s.t. |
| 63 | Lorenzo Rota | Intermarché-Wanty | s.t. |
| 64 | Rasmus Tiller | Uno-X Mobility | 9:26 |
| 65 | Tim Naberman | Team Picnic PostNL | 9:29 |
| 66 | Krists Neilands | Israel-Premier Tech | 9:54 |
| 67 | Stan Van Tricht | Alpecin-Deceuninck | 10:03 |
| 68 | AJ August | INEOS Grenadiers | 10:24 |
| 69 | Kasper Haugland | Norway | 10:41 |
| 70 | Tosh Van der Sande | Team Visma | Lease a Bike | 10:48 |
| 71 | Laurent Gervais | Project Echelon Racing | 11:02 |
| 72 | Omar Fraile | INEOS Grenadiers | 11:04 |
| 73 | Halvor Dolven | Intermarché-Wanty | 11:24 |
| 74 | Ethan Craine | Project Echelon Racing | 11:31 |
| 75 | Emil Toudal | Team Coloquick | 11:37 |
| 76 | Johan Price-Pejtersen | Alpecin-Deceuninck | 12:25 |
| 77 | Georg Rydningen Martinsen | Lillehammer CK Continental | 13:15 |
| 78 | Henrik Fjellheim | Lillehammer CK Continental | s.t. |
| 79 | Eduardo Sepulveda | Lotto | 13:43 |
| 80 | Thomas Gloag | Team Visma | Lease a Bike | 14:02 |
| 81 | Itamar Einhorn | Israel-Premier Tech | 14:17 |
| 82 | Rui Oliveira | UAE Team Emirates-XRG | 15:10 |
| 83 | Emil Herzog | Red Bull-BORA-hansgrohe | 15:47 |
| 84 | Brage Aulstad | Lillehammer CK Continental | 16:17 |
| 85 | Trym Brennsæter | Norway | 16:31 |
| 86 | Joshua Gudnitz | Team Coloquick | 16:34 |
| 87 | Eirik Vang Aas | Team Coop-Repsol | s.t. |
| 88 | Ryan Mullen | Red Bull-BORA-hansgrohe | 17:42 |
| 89 | Laurens Sweeck | Alpecin-Deceuninck | 18:08 |
| 90 | Arne Marit | Intermarché-Wanty | 19:54 |
| 91 | Lionel Taminiaux | Lotto | 22:42 |
| 92 | Mees Vlot | Team Picnic PostNL | 29:11 |
| 93 | Simen Evertsen-Hegreberg | Norway | s.t. |
| 94 | Colby Lange | Project Echelon Racing | 29:28 |
| 95 | Jonas Walton | Project Echelon Racing | 36:09 |
Stage 2 map & profile:

Stage 2 map

Stage 2 profile
Thursday, May 29: Stage 1, Sola - Sola, 179.2 km

Storm Ingebrigtsen wins the first stage. Photo: Szymon Gruchalski
Bill & Carol McGann’s book The Story of the 2023 Tour de France, 2023: The Viking Again Conquers the Tour is available in both Kindle eBook & audiobook versions. To get your copy, just click on the Amazon link on the right.
Weather at the start/finish city of Sola at 2:10 PM, local time: 14C (58F), fair, with the wind from the south at 29 km/hr (18 mph). There is a 60% chance of rain.
The stage: For the first time in Tour of Norway’s history, Sola will host both the start and finish of a stage. Last year, Stage 3 started at Vår Energi Arena Sola before heading to Egersund, where Jordi Meeus took the victory. This year, both the start and finish will be in Sola’s city center.
A bunch sprint is the most likely outcome on the opening day, but the wind-exposed areas along Jærstrendene could create crosswinds and splits in the peloton before returning to Sola. The riders will pass the finish line once before the final sprint, giving them a preview of the finishing stretch before the real showdown after 182 kilometers and 1,818 meters of climbing.
The climbs of Seldalsbakken and Helland will determine who gets to wear the King of the Mountains jersey after the first stage, while sprint points and bonus seconds will be contested at Tjelta.
The race: Here's the report from second-place Matthew Brennan's Team Visma | Lease a Bike:
Matthew Brennan sprinted to second place in the opening stage of the Tour of Norway. In surprising fashion, the victory went to Storm Ingebrigtsen, who just stayed ahead of the oncoming peloton in the final meters.
On Thursday, Team Visma | Lease a Bike appeared at the start of the four-day stage race in Scandinavia with a strong squad, including Norwegians Jørgen Nordhagen and Per Strand Hagenes. Early on, a group of riders broke away in southern Norway. Thanks to the efforts of the Dutch team, the breakaway’s lead never extended beyond four minutes.

Team Visma | Lease a Bike is presented before the stage start.
With dozens of flat kilometres leading toward the finish in Solakrossen, a bunch sprint seemed inevitable, until the wind began to play a major role in today’s race. With sixty kilometers to go, the peloton split into several groups. Led by Hagenes, the breakaway was caught in the final phase of the stage, although his compatriot Ingebrigtsen had attacked solo moment before. The Norwegian narrowly held off the reduced peloton and Brennan to claim his first professional victory.
“The conditions made it extremely tough today. In the finale, my hands were so cold I could barely shift gears. We went all-in as a team to bring back the break. Like everyone else from the team, I gave it my all and came through the final corner at the front of the peloton. Unfortunately, Ingebrigtsen was just too far ahead”, Brennan says afterwards.
Sports director Frans Maassen is proud of his team. “We saw early on that the crosswinds could make it hard to bring back the breakaway. So our riders moved to the front and gave everything. We caught the break, but one rider stayed ahead. Unfortunately, we didn’t have quite enough power left after that. We were hoping to sprint for the victory today with Matthew. It’s a shame that didn’t happen, but we rode a very strong race.”
According to both Maassen and Brennan, the team’s way of racing gives them confidence for the coming days in Norway. “We’re here with a motivated group, which is great. Tomorrow I expect an open race where anything can happen. We’ll need to stay alert”, Maassen says. Brennan adds: “Looking at the general classification, we still have several riders in a good position. Hopefully we can capitalize on that promising situation tomorrow.”
Complete results:
179.2 kilometers raced at an average speed of 43.539 km/hr
| 1 | Storm Ingebrigtsen | Team Coop-Repsol | 4hr 6min 57sec |
| 2 | Matthew Brennan | Team Visma | Lease a Bike | @ 3sec |
| 3 | Tibor Del Grosso | Alpecin-Deceuninck | s.t. |
| 4 | Sebastian Molano | UAE Team Emirates-XRG | s.t. |
| 5 | Alexander Kristoff | Uno-X Mobility | s.t. |
| 6 | Tobias Lund Andresen | Team Picnic PostNL | s.t. |
| 7 | Karsten Feldmann | Team Coop-Repsol | s.t. |
| 8 | Tom Van Asbroeck | Israel-Premier Tech | s.t. |
| 9 | Mikkel Bjerg | UAE Team Emirates-XRG | s.t. |
| 10 | Fredrik Dversnes | Uno-X Mobility | s.t. |
| 11 | Alessandro Covi | UAE Team Emirates-XRG | s.t. |
| 12 | Anton Stensby | Team Coop-Repsol | s.t. |
| 13 | Per Strand Hagenes | Team Visma | Lease a Bike | s.t. |
| 14 | Ådne Holter | Uno-X Mobility | s.t. |
| 15 | Joshua Gudnitz | Team Coloquick | s.t. |
| 16 | Arjen Livyns | Lotto | s.t. |
| 17 | Huub Artz | Intermarché-Wanty | s.t. |
| 18 | Bjoern Koerdt | Team Picnic PostNL | s.t. |
| 19 | Martijn Budding | Unibet Tietema Rockets | s.t. |
| 20 | Vincent Van Hemelen | Team Flanders-Baloise | s.t. |
| 21 | Jan Christen | UAE Team Emirates-XRG | s.t. |
| 22 | Victor Langellotti | INEOS Grenadiers | s.t. |
| 23 | Henri Vandenabeele | Lotto | s.t. |
| 24 | Jonas Geens | Team Flanders-Baloise | s.t. |
| 25 | Eirik Vang Aas | Team Coop-Repsol | s.t. |
| 26 | Attila Valter | Team Visma | Lease a Bike | s.t. |
| 27 | Daniel Årnes | Norway | 0:18 |
| 28 | Morten Nørtoft | Team Coloquick | 0:25 |
| 29 | Peder Dahl Strand | Norway | s.t. |
| 30 | Kevin Vermaerke | Team Picnic PostNL | s.t. |
| 31 | Cedrik Bakke Christophersen | Unibet Tietema Rockets | s.t. |
| 32 | Brem Deman | Team Flanders-Baloise | s.t. |
| 33 | Jørgen Nordhagen | Team Visma | Lease a Bike | s.t. |
| 34 | Vegard Stake Laengen | UAE Team Emirates-XRG | s.t. |
| 35 | Wessel Mouris | Unibet Tietema Rockets | 0:49 |
| 36 | Anders Skaarseth | Uno-X Mobility | 0:57 |
| 37 | Malte Hellerup | Team Coloquick | 0:59 |
| 38 | Alexander Kamp | Intermarché-Wanty | 1:11 |
| 39 | Filip Maciejuk | Red Bull-BORA-hansgrohe | 1:32 |
| 40 | Tim van Dijke | Red Bull-BORA-hansgrohe | s.t. |
| 41 | Maxim Van Gils | Red Bull-BORA-hansgrohe | s.t. |
| 42 | Anton Palzer | Red Bull-BORA-hansgrohe | s.t. |
| 43 | Jonas Gregaard | Lotto | s.t. |
| 44 | Even Thorvaldsen | Lillehammer CK Continental | s.t. |
| 45 | Felix Ørn-Kristoff | Intermarché-Wanty | s.t. |
| 46 | Hartthijs de Vries | Unibet Tietema Rockets | s.t. |
| 47 | Rasmus Tiller | Uno-X Mobility | 1:37 |
| 48 | William Blume Levy | Uno-X Mobility | s.t. |
| 49 | Ludvik Holstad | Lillehammer CK Continental | s.t. |
| 50 | Tim Naberman | Team Picnic PostNL | 1:40 |
| 51 | Artem Shmidt | INEOS Grenadiers | 1:54 |
| 52 | Ward Vanhoof | Team Flanders-Baloise | 1:56 |
| 53 | Toralf Rydningen Martinsen | Lillehammer CK Continental | 2:17 |
| 54 | Ethan Vernon | Israel-Premier Tech | 2:25 |
| 55 | Kiaan Watts | Israel-Premier Tech | 2:36 |
| 56 | Kasper Haugland | Norway | 2:56 |
| 57 | Jelle Johannink | Unibet Tietema Rockets | s.t. |
| 58 | Dylan Vandenstorme | Team Flanders-Baloise | 2:59 |
| 59 | Elias Maris | Team Flanders-Baloise | s.t. |
| 60 | Tosh Van der Sande | Team Visma | Lease a Bike | s.t. |
| 61 | Arne Marit | Intermarché-Wanty | 3:23 |
| 62 | Colby Lange | Project Echelon Racing | 6:11 |
| 63 | Odd Christian Eiking | Unibet Tietema Rockets | s.t. |
| 64 | Toon Aerts | Lotto | s.t. |
| 65 | Emil Toudal | Team Coloquick | s.t. |
| 66 | Marius Innhaug Dahl | Norway | s.t. |
| 67 | Lionel Taminiaux | Lotto | s.t. |
| 68 | Halvor Dolven | Intermarché-Wanty | 6:17 |
| 69 | Itamar Einhorn | Israel-Premier Tech | 6:28 |
| 70 | Gal Glivar | Alpecin-Deceuninck | 8:34 |
| 71 | Laurent Gervais | Project Echelon Racing | s.t. |
| 72 | Floris Van Tricht | Israel-Premier Tech | s.t. |
| 73 | Brage Aulstad | Lillehammer CK Continental | s.t. |
| 74 | Krists Neilands | Israel-Premier Tech | s.t. |
| 75 | Óscar Rodríguez | INEOS Grenadiers | s.t. |
| 76 | Thomas Gloag | Team Visma | Lease a Bike | s.t. |
| 77 | AJ August | INEOS Grenadiers | s.t. |
| 78 | Stan Van Tricht | Alpecin-Deceuninck | s.t. |
| 79 | Juan Guillermo Martinez | Team Picnic PostNL | s.t. |
| 80 | Kieran Haug | Project Echelon Racing | s.t. |
| 81 | Omar Fraile | INEOS Grenadiers | s.t. |
| 82 | Ethan Craine | Project Echelon Racing | s.t. |
| 83 | Lorenzo Rota | Intermarché-Wanty | s.t. |
| 84 | Johan Price-Pejtersen | Alpecin-Deceuninck | s.t. |
| 85 | Mees Vlot | Team Picnic PostNL | 12:40 |
| 86 | Emil Herzog | Red Bull-BORA-hansgrohe | s.t. |
| 87 | Eduardo Sepulveda | Lotto | s.t. |
| 88 | Ryan Mullen | Red Bull-BORA-hansgrohe | s.t. |
| 89 | Rui Oliveira | UAE Team Emirates-XRG | s.t. |
| 90 | Simen Evertsen-Hegreberg | Norway | s.t. |
| 91 | Trym Brennsæter | Norway | s.t. |
| 92 | Henrik Fjellheim | Lillehammer CK Continental | s.t. |
| 93 | Georg Rydningen Martinsen | Lillehammer CK Continental | s.t. |
| 94 | Jonas Walton | Project Echelon Racing | s.t. |
| 95 | Laurens Sweeck | Alpecin-Deceuninck | s.t. |
GC after stage 1:
| 1 | Storm Ingebrigtsen | Team Coop-Repsol | 4hr 6min 43sec |
| 2 | Matthew Brennan | Team Visma | Lease a Bike | @ 11sec |
| 3 | Tibor Del Grosso | Alpecin-Deceuninck | 0:13 |
| 4 | Sebastian Molano | UAE Team Emirates-XRG | 0:17 |
| 5 | Alexander Kristoff | Uno-X Mobility | s.t. |
| 6 | Tobias Lund Andresen | Team Picnic PostNL | s.t. |
| 7 | Karsten Feldmann | Team Coop-Repsol | s.t. |
| 8 | Tom Van Asbroeck | Israel-Premier Tech | s.t. |
| 9 | Mikkel Bjerg | UAE Team Emirates-XRG | s.t. |
| 10 | Fredrik Dversnes | Uno-X Mobility | s.t. |
| 11 | Alessandro Covi | UAE Team Emirates-XRG | s.t. |
| 12 | Anton Stensby | Team Coop-Repsol | s.t. |
| 13 | Per Strand Hagenes | Team Visma | Lease a Bike | s.t. |
| 14 | Ådne Holter | Uno-X Mobility | s.t. |
| 15 | Joshua Gudnitz | Team Coloquick | s.t. |
| 16 | Arjen Livyns | Lotto | s.t. |
| 17 | Huub Artz | Intermarché-Wanty | s.t. |
| 18 | Bjoern Koerdt | Team Picnic PostNL | s.t. |
| 19 | Martijn Budding | Unibet Tietema Rockets | s.t. |
| 20 | Vincent Van Hemelen | Team Flanders-Baloise | s.t. |
| 21 | Jan Christen | UAE Team Emirates-XRG | s.t. |
| 22 | Victor Langellotti | INEOS Grenadiers | s.t. |
| 23 | Henri Vandenabeele | Lotto | s.t. |
| 24 | Jonas Geens | Team Flanders-Baloise | s.t. |
| 25 | Vang Aas Eirik | Team Coop-Repsol | s.t. |
| 26 | Attila Valter | Team Visma | Lease a Bike | s.t. |
| 27 | Daniel Årnes | Norway | 0:26 |
| 28 | Morten Nørtoft | Team Coloquick | 0:39 |
| 29 | Peder Dahl Strand | Norway | s.t. |
| 30 | Kevin Vermaerke | Team Picnic PostNL | s.t. |
| 31 | Cedrik Bakke Christophersen | Unibet Tietema Rockets | s.t. |
| 32 | Brem Deman | Team Flanders-Baloise | s.t. |
| 33 | Jørgen Nordhagen | Team Visma | Lease a Bike | s.t. |
| 34 | Vegard Stake Laengen | UAE Team Emirates-XRG | s.t. |
| 35 | Wessel Mouris | Unibet Tietema Rockets | 1:03 |
| 36 | Anders Skaarseth | Uno-X Mobility | 1:11 |
| 37 | Malte Hellerup | Team Coloquick | 1:13 |
| 38 | Alexander Kamp | Intermarché-Wanty | 1:25 |
| 39 | Filip Maciejuk | Red Bull-BORA-hansgrohe | 1:46 |
| 40 | Tim van Dijke | Red Bull-BORA-hansgrohe | s.t. |
| 41 | Maxim Van Gils | Red Bull-BORA-hansgrohe | s.t. |
| 42 | Anton Palzer | Red Bull-BORA-hansgrohe | s.t. |
| 43 | Jonas Gregaard | Lotto | s.t. |
| 44 | Even Thorvaldsen | Lillehammer CK Continental | s.t. |
| 45 | Felix Ørn-Kristoff | Intermarché-Wanty | s.t. |
| 46 | Hartthijs de Vries | Unibet Tietema Rockets | s.t. |
| 47 | Ludvik Holstad | Lillehammer CK Continental | 1:49 |
| 48 | Rasmus Tiller | Uno-X Mobility | 1:51 |
| 49 | William Blume Levy | Uno-X Mobility | s.t. |
| 50 | Tim Naberman | Team Picnic PostNL | 1:54 |
| 51 | Artem Shmidt | INEOS Grenadiers | 2:08 |
| 52 | Ward Vanhoof | Team Flanders-Baloise | 2:10 |
| 53 | Toralf Rydningen Martinsen | Lillehammer CK Continental | 2:31 |
| 54 | Ethan Vernon | Israel-Premier Tech | 2:39 |
| 55 | Kiaan Watts | Israel-Premier Tech | 2:50 |
| 56 | Kasper Haugland | Norway | 3:10 |
| 57 | Jelle Johannink | Unibet Tietema Rockets | s.t. |
| 58 | Dylan Vandenstorme | Team Flanders-Baloise | 3:13 |
| 59 | Elias Maris | Team Flanders-Baloise | s.t. |
| 60 | Tosh Van der Sande | Team Visma | Lease a Bike | s.t. |
| 61 | Arne Marit | Intermarché-Wanty | 3:37 |
| 62 | Colby Lange | Project Echelon Racing | 6:25 |
| 63 | Odd Christian Eiking | Unibet Tietema Rockets | s.t. |
| 64 | Toon Aerts | Lotto | s.t. |
| 65 | Emil Toudal | Team Coloquick | s.t. |
| 66 | Marius Innhaug Dahl | Norway | s.t. |
| 67 | Lionel Taminiaux | Lotto | s.t. |
| 68 | Halvor Dolven | Intermarché-Wanty | 6:31 |
| 69 | Itamar Einhorn | Israel-Premier Tech | 6:42 |
| 70 | Gal Glivar | Alpecin-Deceuninck | 8:48 |
| 71 | Laurent Gervais | Project Echelon Racing | s.t. |
| 72 | Floris Van Tricht | Israel-Premier Tech | s.t. |
| 73 | Brage Aulstad | Lillehammer CK Continental | s.t. |
| 74 | Krists Neilands | Israel-Premier Tech | s.t. |
| 75 | Óscar Rodríguez | INEOS Grenadiers | s.t. |
| 76 | Thomas Gloag | Team Visma | Lease a Bike | s.t. |
| 77 | AJ August | INEOS Grenadiers | s.t. |
| 78 | Stan Van Tricht | Alpecin-Deceuninck | s.t. |
| 79 | Juan Guillermo Martinez | Team Picnic PostNL | s.t. |
| 80 | Kieran Haug | Project Echelon Racing | s.t. |
| 81 | Omar Fraile | INEOS Grenadiers | s.t. |
| 82 | Ethan Craine | Project Echelon Racing | s.t. |
| 83 | Lorenzo Rota | Intermarché-Wanty | s.t. |
| 84 | Johan Price-Pejtersen | Alpecin-Deceuninck | s.t. |
| 85 | Mees Vlot | Team Picnic PostNL | 12:54 |
| 86 | Emil Herzog | Red Bull-BORA-hansgrohe | s.t. |
| 87 | Eduardo Sepulveda | Lotto | s.t. |
| 88 | Ryan Mullen | Red Bull-BORA-hansgrohe | s.t. |
| 89 | Rui Oliveira | UAE Team Emirates-XRG | s.t. |
| 90 | Simen Evertsen-Hegreberg | Norway | s.t. |
| 91 | Trym Brennsæter | Norway | s.t. |
| 92 | Henrik Fjellheim | Lillehammer CK Continental | s.t. |
| 93 | Georg Rydningen Martinsen | Lillehammer CK Continental | s.t. |
| 94 | Jonas Walton | Project Echelon Racing | s.t. |
| 95 | Laurens Sweeck | Alpecin-Deceuninck | s.t. |
Stage 1 map & profile:

Stage 1 map

Stage 1 profile
Start list with back numbers, Wednesday, May 28, 2025:
| INEOS Grenadiers | |
| 1 | Axel Laurance |
| 2 | AJ August |
| 3 | Omar Fraile |
| 4 | Victor Langellotti |
| 5 | Óscar Rodríguez |
| 6 | Artem Shmidt |
| Alpecin-Deceuninck | |
| 11 | Tibor Del Grosso |
| 12 | Gal Glivar |
| 13 | Johan Price-Pejtersen |
| 14 | Lars Boven |
| 15 | Laurens Sweeck |
| 16 | Stan Van Tricht |
| Intermarché-Wanty | |
| 21 | Alexander Kamp |
| 22 | Halvor Dolven |
| 23 | Arne Marit |
| 24 | Felix Ørn-Kristoff |
| 25 | Lorenzo Rota |
| 26 | Huub Artz |
| Red Bull-BORA-hansgrohe | |
| 31 | Maxim Van Gils |
| 32 | Emil Herzog |
| 33 | Filip Maciejuk |
| 34 | Ryan Mullen |
| 35 | Anton Palzer |
| 36 | Tim van Dijke |
| Team Picnic-PostNL | |
| 41 | Tobias Lund Andresen |
| 42 | Bjoern Koerdt |
| 43 | Juan Guillermo Martinez |
| 44 | Tim Naberman |
| 45 | Kevin Vermaerke |
| 46 | Mees Vlot |
| Team Visma | Lease a Bike | |
| 51 | Per Strand Hagenes |
| 52 | Matthew Brennan |
| 53 | Jørgen Nordhagen |
| 54 | Attila Valter |
| 55 | Tosh Van der Sande |
| 56 | Thomas Gloag |
| UAE Team Emirates-XRG | |
| 61 | Vegard Stake Laengen |
| 62 | Rui Oliveira |
| 63 | Mikkel Bjerg |
| 64 | Alessandro Covi |
| 65 | Jan Christen |
| 66 | Sebastian Molano |
| Israel-Premier Tech | |
| 71 | Floris Van Tricht |
| 72 | Itamar Einhorn |
| 73 | Krists Neilands |
| 74 | Tom Van Asbroeck |
| 75 | Ethan Vernon |
| 76 | Kiaan Watts |
| Lotto | |
| 81 | Toon Aerts |
| 82 | Arjen Livyns |
| 83 | Eduardo Sepulveda |
| 84 | Lionel Taminiaux |
| 85 | Henri Vandenabeele |
| 86 | Jonas Gregaard |
| Team Flanders-Baloise | |
| 91 | Brem Deman |
| 92 | Jonas Geens |
| 93 | Elias Maris |
| 94 | Vincent Van Hemelen |
| 95 | Dylan Vandenstorme |
| 96 | Ward Vanhoof |
| Unibet Tietema Rockets | |
| 101 | Odd Christian Eiking |
| 102 | Cedrik Bakke Christophersen |
| 103 | Hartthijs de Vries |
| 104 | Jelle Johannink |
| 105 | Martijn Budding |
| 106 | Wessel Mouris |
| Uno-X Mobility | |
| 111 | Alexander Kristoff |
| 112 | Fredrik Dversnes |
| 113 | Ådne Holter |
| 114 | William Blume Levy |
| 115 | Anders Skaarseth |
| 116 | Rasmus Tiller |
| Norway | |
| 121 | Daniel Årnes |
| 122 | Trym Brennsæter |
| 123 | IMarius nnhaug Dahl |
| 124 | Simen Evertsen-Hegreberg |
| 125 | Kasper Haugland |
| 126 | Peder Dahl Strand |
| Lillehammer CK Continental Team | |
| 131 | Brage Aulstad |
| 132 | Henrik Fjellheim |
| 133 | Ludvik Holstad |
| 134 | Georg Rydningen Martinsen |
| 135 | Toralf Rydningen Martinsen |
| 136 | Even Thorvaldsen |
| Team Coop-Repsol | |
| 141 | Vang Aas Eirik |
| 142 | Karsten Feldmann |
| 143 | Eivind Broholt Fougner |
| 144 | Storm Ingebrigtsen |
| 145 | Halvor Utengen Sandstad |
| 146 | Anton Stensby |
| Project Echelon Racing | |
| 151 | Cade Bickmore |
| 152 | Ethan Craine |
| 153 | Laurent Gervais |
| 154 | Kieran Haug |
| 155 | Colby Lange |
| 156 | Jonas Walton |
| Team Coloquick | |
| 161 | Joshua Gudnitz |
| 162 | Malte Hellerup |
| 163 | Adam Holm Jørgensen |
| 164 | Morten Nørtoft |
| 165 | Tobias Svarre |
| 166 | Emil Toudal |