| 1 | Romain GregoireGroupama-FDJ United | 4:14:11 |
| 2 | Matteo JorgensonTeam Visma | Lease a Bike | +0:00 |
| 3 | Lenny Sydney MartinezBahrain Victorious | +0:02 |
| 4 | Quinten HermansPinarello-Q36.5 Pro Cycling Team | +0:02 |
| 5 | Paul LapeiraDecathlon CMA CGM Team | +0:02 |
| 6 | Dorian GodonIneos Grenadiers | +0:02 |
| 7 | Christian ScaroniXDS Astana Team | +0:02 |
| 8 | Alex Aranburu DevaCofidis | +0:02 |
| 9 | Lukas NerurkarEF Education - EasyPost | +0:02 |
| 10 | Clement VenturiniUnibet Rose Rockets | +0:10 |
| 11 | Andrea BagioliLidl-Trek | +0:13 |
| 12 | Stefano OldaniCaja Rural-Seguros RGA | +0:13 |
| 13 | Axel MariaultCIC Pro Cycling Academy | +0:14 |
| 14 | Maxime JarnetVan Rysel Roubaix | +0:14 |
| 15 | Clément ChampoussinXDS Astana Team | +0:14 |
| 16 | Simone GualdiLotto Intermarché | +0:14 |
| 17 | Jan ChristenUAE Team Emirates XRG | +0:14 |
| 18 | Davide PiganzoliTeam Visma | Lease a Bike | +0:14 |
| 19 | Bjoern KoerdtTeam Picnic PostNL | +0:19 |
| 20 | Matteo VercherTotalenergies | +0:20 |