| # | Rider | Team | Time | Gap |
|---|---|---|---|---|
| 1 | Jonas Vingegaard | Team Visma | Lease a Bike | 26:22:23 | |
| 2 | Juan Ayuso | UAE Team Emirates | + 01:24 | + 01:24 |
| 3 | Jai Hindley | BORA-hansgrohe | + 01:52 | + 01:52 |
| 4 | Isaac Del Toro | UAE Team Emirates | + 02:20 | + 02:20 |
| 5 | Ben O'connor | Decathlon AG2R La Mondiale Team | + 02:24 | + 02:24 |
| 6 | Thymen Arensman | INEOS Grenadiers | + 02:25 | + 02:25 |
| 7 | Cian Uijtdebroeks | Team Visma | Lease a Bike | + 03:10 | + 03:10 |
| 8 | Lennard Kämna | BORA-hansgrohe | + 04:02 | + 04:02 |
| 9 | Tom Pidcock | INEOS Grenadiers | + 04:05 | + 04:05 |
| 10 | Kévin Vauquelin | ARKEA-B&B HOTELS | + 04:24 | + 04:24 |
| 11 | Wout Poels | Bahrain Victorious | + 04:52 | + 04:52 |
| 12 | Enric Mas | Movistar Team | + 04:56 | + 04:56 |
| 13 | Romain Grégoire | Groupama-FDJ | + 05:25 | + 05:25 |
| 14 | Lorenzo Fortunato | Astana Qazaqstan Team | + 05:26 | + 05:26 |
| 15 | Mikkel Bjerg | UAE Team Emirates | + 05:35 | + 05:35 |
| 16 | Magnus Sheffield | INEOS Grenadiers | + 05:42 | + 05:42 |
| 17 | Cristian Rodriguez | ARKEA-B&B HOTELS | + 05:52 | + 05:52 |
| 18 | Davide Piganzoli | Team Polti Kometa | + 05:53 | + 05:53 |
| 19 | Filippo Zana | Team Jayco-AlUla | + 06:00 | + 06:00 |
| 20 | Ivan Sosa | Movistar Team | + 06:08 | + 06:08 |
| 21 | Krists Neilands | Israel-Premier Tech | + 06:32 | + 06:32 |
| 22 | Lawson Craddock | Team Jayco-AlUla | + 06:35 | + 06:35 |
| 23 | Guillaume Martin | Cofidis | + 07:04 | + 07:04 |
| 24 | Kevin Vermaerke | Team dsm-firmenich PostNL | + 07:05 | + 07:05 |
| 25 | Lorenzo Rota | Intermarché-Wanty | + 07:33 | + 07:33 |
| 26 | Davide Formolo | Movistar Team | + 07:50 | + 07:50 |
| 27 | Antonio Tiberi | Bahrain Victorious | + 08:14 | + 08:14 |
| 28 | Simone Velasco | Astana Qazaqstan Team | + 08:16 | + 08:16 |
| 29 | Tao Geoghegan Hart | Lidl-Trek | + 08:16 | + 08:16 |
| 30 | Valentin Madouas | Groupama-FDJ | + 08:18 | + 08:18 |
| 31 | Domenico Pozzovivo | VF Group-Bardiani CSF-Faizanè | + 09:08 | + 09:08 |
| 32 | Andrea Bagioli | Lidl-Trek | + 09:31 | + 09:31 |
| 33 | Gianmarco Garofoli | Astana Qazaqstan Team | + 10:26 | + 10:26 |
| 34 | Nicolas Prodhomme | Decathlon AG2R La Mondiale Team | + 14:01 | + 14:01 |
| 35 | Christian Eiking Odd | Uno-X Mobility | + 14:23 | + 14:23 |
| 36 | Giovanni Aleotti | BORA-hansgrohe | + 14:42 | + 14:42 |
| 37 | Rafal Majka | UAE Team Emirates | + 14:55 | + 14:55 |
| 38 | Andreas Leknessund | Uno-X Mobility | + 16:36 | + 16:36 |
| 39 | Nelson Oliveira | Movistar Team | + 17:38 | + 17:38 |
| 40 | Alberto Bettiol | EF Education-EasyPost | + 21:29 | + 21:29 |
| 41 | Damiano Caruso | Bahrain Victorious | + 21:49 | + 21:49 |
| 42 | Corbin Strong | Israel-Premier Tech | + 22:24 | + 22:24 |
| 43 | Alessandro Tonelli | VF Group-Bardiani CSF-Faizanè | + 22:37 | + 22:37 |
| 44 | Florian Stork | Tudor Pro Cycling Team | + 23:22 | + 23:22 |
| 45 | Toms Skujins | Lidl-Trek | + 24:33 | + 24:33 |
| 46 | Nicola Conci | Alpecin-Deceuninck | + 25:15 | + 25:15 |
| 47 | Attila Valter | Team Visma | Lease a Bike | + 25:53 | + 25:53 |
| 48 | Nans Peters | Decathlon AG2R La Mondiale Team | + 28:25 | + 28:25 |
| 49 | Lawrence Warbasse | Decathlon AG2R La Mondiale Team | + 28:28 | + 28:28 |
| 50 | Jonas Abrahamsen | Uno-X Mobility | + 29:11 | + 29:11 |
| 51 | Damien Touzé | Decathlon AG2R La Mondiale Team | + 29:39 | + 29:39 |
| 52 | Kasper Asgreen | Soudal Quick-Step | + 30:21 | + 30:21 |
| 53 | Yevgeniy Fedorov | Astana Qazaqstan Team | + 30:41 | + 30:41 |
| 54 | Ben Tulett | Team Visma | Lease a Bike | + 31:02 | + 31:02 |
| 55 | Andrea Vendrame | Decathlon AG2R La Mondiale Team | + 31:32 | + 31:32 |
| 56 | Tom van Asbroeck | Israel-Premier Tech | + 31:32 | + 31:32 |
| 57 | Mike Teunissen | Intermarché-Wanty | + 34:06 | + 34:06 |
| 58 | Iván García Cortina | Movistar Team | + 34:25 | + 34:25 |
| 59 | Bastien Tronchon | Decathlon AG2R La Mondiale Team | + 34:25 | + 34:25 |
| 60 | Simon Geschke | Cofidis | + 34:55 | + 34:55 |
| 61 | Ben Healy | EF Education-EasyPost | + 35:16 | + 35:16 |
| 62 | Julian Alaphilippe | Soudal Quick-Step | + 35:19 | + 35:19 |
| 63 | Mirco Maestri | Team Polti Kometa | + 35:27 | + 35:27 |
| 64 | Cyril Barthe | Groupama-FDJ | + 35:32 | + 35:32 |
| 65 | Lorenzo Milesi | Movistar Team | + 35:42 | + 35:42 |
| 66 | James Shaw | EF Education-EasyPost | + 36:57 | + 36:57 |
| 67 | Clément Venturini | ARKEA-B&B HOTELS | + 37:07 | + 37:07 |
| 68 | Simon Clarke | Israel-Premier Tech | + 37:21 | + 37:21 |
| 69 | Steven Kruijswijk | Team Visma | Lease a Bike | + 37:48 | + 37:48 |
| 70 | Christopher Juul-jensen | Team Jayco-AlUla | + 37:51 | + 37:51 |
| 71 | Amanuel Ghebreigzabhier | Lidl-Trek | + 38:00 | + 38:00 |
| 72 | Marco Brenner | Tudor Pro Cycling Team | + 38:15 | + 38:15 |
| 73 | Connor Swift | INEOS Grenadiers | + 38:40 | + 38:40 |
| 74 | Olivier Le Gac | Groupama-FDJ | + 38:42 | + 38:42 |
| 75 | Gianni Vermeersch | Alpecin-Deceuninck | + 38:44 | + 38:44 |
| 76 | Markus Hoelgaard | Uno-X Mobility | + 39:27 | + 39:27 |
| 77 | Hugo Page | Intermarché-Wanty | + 39:46 | + 39:46 |
| 78 | Alessandro Covi | UAE Team Emirates | + 41:58 | + 41:58 |
| 79 | Marc Hirschi | UAE Team Emirates | + 42:01 | + 42:01 |
| 80 | Stefano Oldani | Cofidis | + 42:38 | + 42:38 |
| 81 | Jasper Philipsen | Alpecin-Deceuninck | + 42:39 | + 42:39 |
| 82 | Davide Bais | Team Polti Kometa | + 43:09 | + 43:09 |
| 83 | Ethan Vernon | Israel-Premier Tech | + 43:41 | + 43:41 |
| 84 | Nikias Arndt | Bahrain Victorious | + 44:08 | + 44:08 |
| 85 | Chris Hamilton | Team dsm-firmenich PostNL | + 44:31 | + 44:31 |
| 86 | Ruben Fernandez | Cofidis | + 45:22 | + 45:22 |
| 87 | Alessandro de Marchi | Team Jayco-AlUla | + 46:44 | + 46:44 |
| 88 | Filippo Ganna | INEOS Grenadiers | + 47:41 | + 47:41 |
| 89 | Nicolò Parisini | Q36.5 Pro Cycling Team | + 47:49 | + 47:49 |
| 90 | Alex Tolio | VF Group-Bardiani CSF-Faizanè | + 48:00 | + 48:00 |
| 91 | Giovanni Lonardi | Team Polti Kometa | + 48:08 | + 48:08 |
| 92 | Laurenz Rex | Intermarché-Wanty | + 48:09 | + 48:09 |
| 93 | Amaury Capiot | ARKEA-B&B HOTELS | + 48:14 | + 48:14 |
| 94 | Jonathan Milan | Lidl-Trek | + 48:30 | + 48:30 |
| 95 | Filip Maciejuk | BORA-hansgrohe | + 48:57 | + 48:57 |
| 96 | Fabio van den Bossche | Alpecin-Deceuninck | + 49:08 | + 49:08 |
| 97 | Clément Davy | Groupama-FDJ | + 49:10 | + 49:10 |
| 98 | Michal Kwiatkowski | INEOS Grenadiers | + 49:12 | + 49:12 |
| 99 | Alexander Kristoff | Uno-X Mobility | + 50:07 | + 50:07 |
| 100 | Casper van Uden | Team dsm-firmenich PostNL | + 50:37 | + 50:37 |
| 101 | Fabian Lienhard | Groupama-FDJ | + 51:20 | + 51:20 |
| 102 | Simone Consonni | Lidl-Trek | + 51:25 | + 51:25 |
| 103 | Patrick Gamper | BORA-hansgrohe | + 51:45 | + 51:45 |
| 104 | Kyrylo Tsarenko | Team corratec - Vini Fantini | + 52:19 | + 52:19 |
| 105 | Robin Froidevaux | Tudor Pro Cycling Team | + 52:21 | + 52:21 |
| 106 | Niccolo Bonifazio | Team corratec - Vini Fantini | + 52:38 | + 52:38 |
| 107 | Jonas Rickaert | Alpecin-Deceuninck | + 52:55 | + 52:55 |
| 108 | Mattia Bais | Team Polti Kometa | + 53:45 | + 53:45 |
| 109 | Michael Vink | UAE Team Emirates | + 55:09 | + 55:09 |
| 110 | Cees Bol | Astana Qazaqstan Team | + 55:27 | + 55:27 |
| 111 | Lorenzo Quartucci | Team corratec - Vini Fantini | + 55:49 | + 55:49 |
| 112 | John Degenkolb | Team dsm-firmenich PostNL | + 56:26 | + 56:26 |
| 113 | Jannik Steimle | Q36.5 Pro Cycling Team | + 58:42 | + 58:42 |
| 114 | Luke Rowe | INEOS Grenadiers | + 58:56 | + 58:56 |
| 115 | Georg Steinhauser | EF Education-EasyPost | + 59:03 | + 59:03 |
| 116 | Alexander Krieger | Tudor Pro Cycling Team | + 59:36 | + 59:36 |
| 117 | Enrico Zanoncello | VF Group-Bardiani CSF-Faizanè | + 01:00:44 | + 01:00:44 |
| 118 | Alexander Kamp | Tudor Pro Cycling Team | + 01:01:01 | + 01:01:01 |
| 119 | Cesare Benedetti | BORA-hansgrohe | + 01:01:06 | + 01:01:06 |
| 120 | Søren Wærenskjold | Uno-X Mobility | + 01:02:12 | + 01:02:12 |
| 121 | Dylan van Baarle | Team Visma | Lease a Bike | + 01:03:19 | + 01:03:19 |
| 122 | Stanislaw Aniolkowski | Cofidis | + 01:03:25 | + 01:03:25 |
| 123 | Davide Cimolai | Movistar Team | + 01:03:41 | + 01:03:41 |
| 124 | Oscar Riesebeek | Alpecin-Deceuninck | + 01:04:20 | + 01:04:20 |
| 125 | Samuele Zoccarato | VF Group-Bardiani CSF-Faizanè | + 01:09:05 | + 01:09:05 |