| # | Rider | Team | Time | Gap |
|---|---|---|---|---|
| 1 | Matthew Brennan | Team Visma | Lease a Bike | 15:32:22 | |
| 2 | Victor Langellotti | INEOS Grenadiers | + 28 | + 28 |
| 3 | Jan Christen | UAE Team Emirates-XRG | + 39 | + 39 |
| 4 | Tobias Lund Andresen | Team Picnic PostNL | + 43 | + 43 |
| 5 | Tibor Del Grosso | Alpecin-Deceuninck | + 43 | + 43 |
| 6 | Huub Artz | Intermarché-Wanty | + 44 | + 44 |
| 7 | Ådne Holter | Uno-X Mobility | + 46 | + 46 |
| 8 | Jonas Geens | Team Flanders-Baloise | + 55 | + 55 |
| 9 | Fredrik Dversnes | Uno-X Mobility | + 01:00 | + 01:00 |
| 10 | Vincent van Hemelen | Team Flanders-Baloise | + 01:00 | + 01:00 |
| 11 | Alessandro Covi | UAE Team Emirates-XRG | + 01:12 | + 01:12 |
| 12 | Bjoern Koerdt | Team Picnic PostNL | + 01:12 | + 01:12 |
| 13 | Jørgen Nordhagen | Team Visma | Lease a Bike | + 01:20 | + 01:20 |
| 14 | Attila Valter | Team Visma | Lease a Bike | + 01:22 | + 01:22 |
| 15 | Bakke Christophersen Cedrik | Unibet Tietema Rockets | + 01:22 | + 01:22 |
| 16 | Arjen Livyns | Lotto | + 01:30 | + 01:30 |
| 17 | Morten Nørtoft | Team Coloquick | + 01:44 | + 01:44 |
| 18 | Maxim van Gils | Red Bull-BORA-hansgrohe | + 01:49 | + 01:49 |
| 19 | Henri Vandenabeele | Lotto | + 01:54 | + 01:54 |
| 20 | Kevin Vermaerke | Team Picnic PostNL | + 02:20 | + 02:20 |
| 21 | Tom van Asbroeck | Israel-Premier Tech | + 02:28 | + 02:28 |
| 22 | Storm Ingebrigtsen | Team Coop-Repsol | + 02:37 | + 02:37 |
| 23 | Malte Hellerup | Team Coloquick | + 02:59 | + 02:59 |
| 24 | Ward Vanhoof | Team Flanders-Baloise | + 03:47 | + 03:47 |
| 25 | Rydningen Martinsen Toralf | Lillehammer CK Continental Team | + 04:39 | + 04:39 |
| 26 | Strand Hagenes Per | Team Visma | Lease a Bike | + 04:51 | + 04:51 |
| 27 | Even Thorvaldsen | Lillehammer CK Continental Team | + 05:31 | + 05:31 |
| 28 | Anton Palzer | Red Bull-BORA-hansgrohe | + 05:47 | + 05:47 |
| 29 | Brem Deman | Team Flanders-Baloise | + 05:49 | + 05:49 |
| 30 | Tim van Dijke | Red Bull-BORA-hansgrohe | + 06:21 | + 06:21 |
| 31 | Filip Maciejuk | Red Bull-BORA-hansgrohe | + 06:21 | + 06:21 |
| 32 | Elias Maris | Team Flanders-Baloise | + 07:40 | + 07:40 |
| 33 | Christian Eiking Odd | Unibet Tietema Rockets | + 07:42 | + 07:42 |
| 34 | Innhaug Dahl Marius | Norway | + 07:47 | + 07:47 |
| 35 | Wessel Mouris | Unibet Tietema Rockets | + 07:49 | + 07:49 |
| 36 | Alexander Kamp | Intermarché-Wanty | + 08:25 | + 08:25 |
| 37 | Hartthijs de Vries | Unibet Tietema Rockets | + 09:03 | + 09:03 |
| 38 | Mikkel Bjerg | UAE Team Emirates-XRG | + 09:06 | + 09:06 |
| 39 | Gal Glivar | Alpecin-Deceuninck | + 09:27 | + 09:27 |
| 40 | Stake Laengen Vegard | UAE Team Emirates-XRG | + 09:28 | + 09:28 |
| 41 | Óscar Rodríguez | INEOS Grenadiers | + 10:05 | + 10:05 |
| 42 | Jonas Gregaard | Lotto | + 10:11 | + 10:11 |
| 43 | Toon Aerts | Lotto | + 10:13 | + 10:13 |
| 44 | Lorenzo Rota | Intermarché-Wanty | + 10:15 | + 10:15 |
| 45 | Anton Stensby | Team Coop-Repsol | + 10:28 | + 10:28 |
| 46 | Aj August | INEOS Grenadiers | + 10:58 | + 10:58 |
| 47 | Ludvik Holstad | Lillehammer CK Continental Team | + 11:05 | + 11:05 |
| 48 | Alexander Kristoff | Uno-X Mobility | + 11:47 | + 11:47 |
| 49 | Kieran Haug | Project Echelon Racing | + 11:50 | + 11:50 |
| 50 | Ethan Vernon | Israel-Premier Tech | + 12:04 | + 12:04 |
| 51 | Felix Ørn-kristoff | Intermarché-Wanty | + 12:06 | + 12:06 |
| 52 | William Blume Levy | Uno-X Mobility | + 12:36 | + 12:36 |
| 53 | Karsten Feldmann | Team Coop-Repsol | + 13:06 | + 13:06 |
| 54 | Daniel Årnes | Norway | + 13:12 | + 13:12 |
| 55 | Anders Skaarseth | Uno-X Mobility | + 13:23 | + 13:23 |
| 56 | Dylan Vandenstorme | Team Flanders-Baloise | + 14:13 | + 14:13 |
| 57 | Krists Neilands | Israel-Premier Tech | + 14:15 | + 14:15 |
| 58 | Kiaan Watts | Israel-Premier Tech | + 14:16 | + 14:16 |
| 59 | Halvor Dolven | Intermarché-Wanty | + 14:35 | + 14:35 |
| 60 | Henrik Fjellheim | Lillehammer CK Continental Team | + 15:04 | + 15:04 |
| 61 | Eduardo Sepulveda | Lotto | + 15:07 | + 15:07 |
| 62 | Sebastian Molano | UAE Team Emirates-XRG | + 15:14 | + 15:14 |
| 63 | Jelle Johannink | Unibet Tietema Rockets | + 15:46 | + 15:46 |
| 64 | Rydningen Martinsen Georg | Lillehammer CK Continental Team | + 15:57 | + 15:57 |
| 65 | Omar Fraile | INEOS Grenadiers | + 15:57 | + 15:57 |
| 66 | Guillermo Martinez Juan | Team Picnic PostNL | + 16:24 | + 16:24 |
| 67 | Emil Toudal | Team Coloquick | + 17:22 | + 17:22 |
| 68 | Laurent Gervais | Project Echelon Racing | + 18:33 | + 18:33 |
| 69 | Rasmus Tiller | Uno-X Mobility | + 18:38 | + 18:38 |
| 70 | Martijn Budding | Unibet Tietema Rockets | + 20:32 | + 20:32 |
| 71 | Dahl Strand Peder | Norway | + 20:53 | + 20:53 |
| 72 | Stan van Tricht | Alpecin-Deceuninck | + 21:18 | + 21:18 |
| 73 | Tim Naberman | Team Picnic PostNL | + 23:20 | + 23:20 |
| 74 | Kasper Haugland | Norway | + 23:20 | + 23:20 |
| 75 | Vang Aas Eirik | Team Coop-Repsol | + 23:42 | + 23:42 |
| 76 | Thomas Gloag | Team Visma | Lease a Bike | + 24:29 | + 24:29 |
| 77 | Tosh van der Sande | Team Visma | Lease a Bike | + 27:11 | + 27:11 |
| 78 | Rui Oliveira | UAE Team Emirates-XRG | + 27:12 | + 27:12 |
| 79 | Floris van Tricht | Israel-Premier Tech | + 27:13 | + 27:13 |
| 80 | Emil Herzog | Red Bull-BORA-hansgrohe | + 28:51 | + 28:51 |
| 81 | Laurens Sweeck | Alpecin-Deceuninck | + 30:33 | + 30:33 |
| 82 | Brage Aulstad | Lillehammer CK Continental Team | + 32:59 | + 32:59 |
| 83 | Ryan Mullen | Red Bull-BORA-hansgrohe | + 33:40 | + 33:40 |
| 84 | Lionel Taminiaux | Lotto | + 35:04 | + 35:04 |
| 85 | Itamar Einhorn | Israel-Premier Tech | + 38:47 | + 38:47 |
| 86 | Joshua Gudnitz | Team Coloquick | + 45:16 | + 45:16 |
| 87 | Simen Evertsen-hegreberg | Norway | + 55:20 | + 55:20 |
| 88 | Mees Vlot | Team Picnic PostNL | + 55:22 | + 55:22 |