| # | Rider | Team | Time | Gap |
|---|---|---|---|---|
| 1 | Max Schachmann | BORA-hansgrohe | 28:49:51 | |
| 2 | Aleksandr Vlasov | Astana-Premier Tech | + 19 | + 19 |
| 3 | Ion Izagirre | Astana-Premier Tech | + 23 | + 23 |
| 4 | Lucas Hamilton | Team BikeExchange | + 41 | + 41 |
| 5 | Tiesj Benoot | Team DSM | + 42 | + 42 |
| 6 | Guillaume Martin | Cofidis | + 01:14 | + 01:14 |
| 7 | Jack Haig | Bahrain Victorious | + 01:18 | + 01:18 |
| 8 | Matteo Jorgenson | Movistar Team | + 01:29 | + 01:29 |
| 9 | Aurélien Paret-peintre | AG2R Citroën Team | + 01:31 | + 01:31 |
| 10 | Gino Mäder | Bahrain Victorious | + 01:32 | + 01:32 |
| 11 | Harm Vanhoucke | Lotto-Soudal | + 01:41 | + 01:41 |
| 12 | Ben O'connor | AG2R Citroën Team | + 01:44 | + 01:44 |
| 13 | Dylan van Baarle | INEOS Grenadiers | + 01:49 | + 01:49 |
| 14 | Warren Barguil | Team Arkéa-Samsic | + 01:55 | + 01:55 |
| 15 | Primoz Roglic | Jumbo-Visma | + 02:16 | + 02:16 |
| 16 | Pierre Latour | Team TotalEnergies | + 02:17 | + 02:17 |
| 17 | León Sánchez Luis | Astana-Premier Tech | + 02:31 | + 02:31 |
| 18 | Jai Hindley | Team DSM | + 02:36 | + 02:36 |
| 19 | Sergio Henao | Team Qhubeka NextHash | + 02:40 | + 02:40 |
| 20 | Dylan Teuns | Bahrain Victorious | + 03:09 | + 03:09 |
| 21 | Krists Neilands | Israel Start-Up Nation | + 03:13 | + 03:13 |
| 22 | Quentin Pacher | B&B Hotels p/b KTM | + 03:20 | + 03:20 |
| 23 | Louis Meintjes | Intermarché-Wanty-Gobert Matériaux | + 04:09 | + 04:09 |
| 24 | Simon Geschke | Cofidis | + 04:12 | + 04:12 |
| 25 | Neilson Powless | EF Education-NIPPO | + 05:37 | + 05:37 |
| 26 | Fabio Aru | Team Qhubeka NextHash | + 06:33 | + 06:33 |
| 27 | Bob Jungels | AG2R Citroën Team | + 09:01 | + 09:01 |
| 28 | Julien Bernard | Trek-Segafredo | + 09:32 | + 09:32 |
| 29 | Steven Kruijswijk | Jumbo-Visma | + 10:22 | + 10:22 |
| 30 | George Bennett | Jumbo-Visma | + 14:18 | + 14:18 |
| 31 | Joaquin Rojas José | Movistar Team | + 15:32 | + 15:32 |
| 32 | Mattia Cattaneo | Deceuninck-Quick Step | + 16:51 | + 16:51 |
| 33 | Oliver Naesen | AG2R Citroën Team | + 17:01 | + 17:01 |
| 34 | Jorge Arcas | Movistar Team | + 18:23 | + 18:23 |
| 35 | Julien El Fares | EF Education-NIPPO | + 18:36 | + 18:36 |
| 36 | Kenny Elissonde | Trek-Segafredo | + 18:41 | + 18:41 |
| 37 | Christian Eiking Odd | Intermarché-Wanty-Gobert Matériaux | + 19:16 | + 19:16 |
| 38 | Michael Matthews | Team BikeExchange | + 20:42 | + 20:42 |
| 39 | Dorian Godon | AG2R Citroën Team | + 20:57 | + 20:57 |
| 40 | Kristian Sbaragli | Alpecin-Fenix | + 22:33 | + 22:33 |
| 41 | Sam Oomen | Jumbo-Visma | + 23:08 | + 23:08 |
| 42 | Matteo Sobrero | Astana-Premier Tech | + 24:15 | + 24:15 |
| 43 | Erik Bystrøm Sven | UAE Team Emirates | + 26:02 | + 26:02 |
| 44 | Damien Touzé | AG2R Citroën Team | + 26:59 | + 26:59 |
| 45 | Rohan Dennis | INEOS Grenadiers | + 27:41 | + 27:41 |
| 46 | Laurens de Plus | INEOS Grenadiers | + 27:54 | + 27:54 |
| 47 | Matteo Trentin | UAE Team Emirates | + 28:25 | + 28:25 |
| 48 | Yves Lampaert | Deceuninck-Quick Step | + 28:33 | + 28:33 |
| 49 | Ben Swift | INEOS Grenadiers | + 29:01 | + 29:01 |
| 50 | Omar Fraile | Astana-Premier Tech | + 29:19 | + 29:19 |
| 51 | David de La Cruz | UAE Team Emirates | + 29:24 | + 29:24 |
| 52 | Sep Vanmarcke | Israel Start-Up Nation | + 30:40 | + 30:40 |
| 53 | Florian Sénéchal | Deceuninck-Quick Step | + 31:18 | + 31:18 |
| 54 | Nils Politt | BORA-hansgrohe | + 31:30 | + 31:30 |
| 55 | Rui Costa | UAE Team Emirates | + 31:52 | + 31:52 |
| 56 | Connor Swift | Team Arkéa-Samsic | + 32:21 | + 32:21 |
| 57 | Magnus Cort | EF Education-NIPPO | + 32:39 | + 32:39 |
| 58 | Jacopo Mosca | Trek-Segafredo | + 33:13 | + 33:13 |
| 59 | Jasper Stuyven | Trek-Segafredo | + 33:48 | + 33:48 |
| 60 | Philippe Gilbert | Lotto-Soudal | + 34:01 | + 34:01 |
| 61 | Stefano Oldani | Lotto-Soudal | + 34:19 | + 34:19 |
| 62 | Cyril Barthe | B&B Hotels p/b KTM | + 34:23 | + 34:23 |
| 63 | Gregor Mühlberger | Movistar Team | + 35:10 | + 35:10 |
| 64 | Tim Declercq | Deceuninck-Quick Step | + 35:52 | + 35:52 |
| 65 | Christophe Laporte | Cofidis | + 36:14 | + 36:14 |
| 66 | Thomas de Gendt | Lotto-Soudal | + 37:34 | + 37:34 |
| 67 | Luke Durbridge | Team BikeExchange | + 37:38 | + 37:38 |
| 68 | Pierre-luc Périchon | Cofidis | + 38:56 | + 38:56 |
| 69 | Bryan Coquard | B&B Hotels p/b KTM | + 39:42 | + 39:42 |
| 70 | Cyril Gautier | B&B Hotels p/b KTM | + 40:50 | + 40:50 |
| 71 | Edward Theuns | Trek-Segafredo | + 40:50 | + 40:50 |
| 72 | Oscar Riesebeek | Alpecin-Fenix | + 42:58 | + 42:58 |
| 73 | Felix Großschartner | BORA-hansgrohe | + 43:00 | + 43:00 |
| 74 | Bruno Armirail | Groupama-FDJ | + 43:21 | + 43:21 |
| 75 | Sander Armee | Team Qhubeka NextHash | + 43:38 | + 43:38 |
| 76 | Rein Taaramäe | Intermarché-Wanty-Gobert Matériaux | + 44:01 | + 44:01 |
| 77 | Stefan Bissegger | EF Education-NIPPO | + 45:35 | + 45:35 |
| 78 | Clément Russo | Team Arkéa-Samsic | + 45:47 | + 45:47 |
| 79 | Sam Bennett | Deceuninck-Quick Step | + 46:45 | + 46:45 |
| 80 | Anthony Turgis | Team TotalEnergies | + 47:28 | + 47:28 |
| 81 | Fabien Doubey | Team TotalEnergies | + 47:32 | + 47:32 |
| 82 | Alexander Kristoff | UAE Team Emirates | + 47:36 | + 47:36 |
| 83 | Remi Cavagna | Deceuninck-Quick Step | + 47:41 | + 47:41 |
| 84 | Imanol Erviti | Movistar Team | + 47:43 | + 47:43 |
| 85 | Edvald Boasson-hagen | Team TotalEnergies | + 48:27 | + 48:27 |
| 86 | Piet Allegaert | Cofidis | + 48:58 | + 48:58 |
| 87 | Yukiya Arashiro | Bahrain Victorious | + 49:45 | + 49:45 |
| 88 | Victor Campenaerts | Team Qhubeka NextHash | + 49:53 | + 49:53 |
| 89 | Jonas Koch | Intermarché-Wanty-Gobert Matériaux | + 49:54 | + 49:54 |
| 90 | Nacer Bouhanni | Team Arkéa-Samsic | + 50:17 | + 50:17 |
| 91 | Stan Dewulf | AG2R Citroën Team | + 50:28 | + 50:28 |
| 92 | Casper Pedersen | Team DSM | + 51:18 | + 51:18 |
| 93 | John Degenkolb | Lotto-Soudal | + 51:30 | + 51:30 |
| 94 | Andrey Amador | INEOS Grenadiers | + 52:37 | + 52:37 |
| 95 | Rui Oliveira | UAE Team Emirates | + 53:35 | + 53:35 |
| 96 | Danny van Poppel | Intermarché-Wanty-Gobert Matériaux | + 53:38 | + 53:38 |
| 97 | Jonathan Hivert | B&B Hotels p/b KTM | + 53:44 | + 53:44 |
| 98 | Michael Mørkøv | Deceuninck-Quick Step | + 53:59 | + 53:59 |
| 99 | Nils Eekhoff | Team DSM | + 54:25 | + 54:25 |
| 100 | Florian Vermeersch | Lotto-Soudal | + 55:26 | + 55:26 |
| 101 | Cyril Lemoine | B&B Hotels p/b KTM | + 55:37 | + 55:37 |
| 102 | Ignatas Konovalovas | Groupama-FDJ | + 55:54 | + 55:54 |
| 103 | Scott Thwaites | Alpecin-Fenix | + 56:08 | + 56:08 |
| 104 | Alex Kirsch | Trek-Segafredo | + 57:59 | + 57:59 |
| 105 | Rick Zabel | Israel Start-Up Nation | + 59:39 | + 59:39 |
| 106 | Arnaud Démare | Groupama-FDJ | + 01:00:01 | + 01:00:01 |
| 107 | Marco Haller | Bahrain Victorious | + 01:00:22 | + 01:00:22 |
| 108 | Anthony Perez | Cofidis | + 01:01:06 | + 01:01:06 |
| 109 | Senne Leysen | Alpecin-Fenix | + 01:01:18 | + 01:01:18 |
| 110 | Jelle Wallays | Cofidis | + 01:01:22 | + 01:01:22 |
| 111 | Jonas Rutsch | EF Education-NIPPO | + 01:02:28 | + 01:02:28 |
| 112 | Matthias Brändle | Israel Start-Up Nation | + 01:04:04 | + 01:04:04 |
| 113 | Dries de Bondt | Alpecin-Fenix | + 01:04:56 | + 01:04:56 |
| 114 | Daniel Mclay | Team Arkéa-Samsic | + 01:05:00 | + 01:05:00 |
| 115 | Taco van der Hoorn | Intermarché-Wanty-Gobert Matériaux | + 01:06:12 | + 01:06:12 |
| 116 | Jacopo Guarnieri | Groupama-FDJ | + 01:06:24 | + 01:06:24 |
| 117 | Phil Bauhaus | Bahrain Victorious | + 01:06:46 | + 01:06:46 |
| 118 | Mads Pedersen | Trek-Segafredo | + 01:07:51 | + 01:07:51 |
| 119 | Michael Schwarzmann | BORA-hansgrohe | + 01:09:38 | + 01:09:38 |
| 120 | Cees Bol | Team DSM | + 01:10:30 | + 01:10:30 |
| 121 | Jordi Meeus | BORA-hansgrohe | + 01:12:11 | + 01:12:11 |
| 122 | André Greipel | Israel Start-Up Nation | + 01:12:26 | + 01:12:26 |
| 123 | Cesare Benedetti | BORA-hansgrohe | + 01:15:39 | + 01:15:39 |
| 124 | Jasha Sütterlin | Team DSM | + 01:17:22 | + 01:17:22 |
| 125 | Ramon Sinkeldam | Groupama-FDJ | + 01:19:12 | + 01:19:12 |
| 126 | Boy van Poppel | Intermarché-Wanty-Gobert Matériaux | + 01:20:46 | + 01:20:46 |
| 127 | Jérémy Lecroq | B&B Hotels p/b KTM | + 01:22:22 | + 01:22:22 |