| 1 | Per Strand HagenesTeam Visma | Lease a Bike | 4:31:46 |
| 2 | Jasper StuyvenSoudal Quick-Step | +0:02 |
| 3 | Christophe LaporteTeam Visma | Lease a Bike | +0:02 |
| 4 | Matys GriselLotto Intermarché | +0:02 |
| 5 | Jonas AbrahamsenUNO-X Mobility | +0:02 |
| 6 | Paul LapeiraDecathlon CMA CGM Team | +0:02 |
| 7 | Thibaud GruelGroupama-FDJ United | +0:02 |
| 8 | Lewis AskeyNSN Cycling Team | +0:02 |
| 9 | Florian SenechalAlpecin-Premier Tech | +0:02 |
| 10 | Toms SkujinsLidl-Trek | +0:09 |
| 11 | Rasmus PedersenDecathlon CMA CGM Team | +0:12 |
| 12 | Fabio ChristenPinarello-Q36.5 Pro Cycling Team | +0:28 |
| 13 | Alexis RenardCofidis | +0:36 |
| 14 | Matis LouvelNSN Cycling Team | +0:36 |
| 15 | Axel HuensGroupama-FDJ United | +0:36 |
| 16 | Pepijn ReinderinkSoudal Quick-Step | +0:36 |
| 17 | Victor PaponNice Metropole Cote D'Azur | +0:36 |
| 18 | Lukáš KubišUnibet Rose Rockets | +0:36 |
| 19 | Aime De GendtPinarello-Q36.5 Pro Cycling Team | +0:36 |
| 20 | Maxime VezieCIC Pro Cycling Academy | +0:36 |