| # | Rider | Team | Time | Gap |
|---|---|---|---|---|
| 1 | Christophe Laporte | Jumbo-Visma | 03:48:38 | |
| 2 | Primoz Roglic | Jumbo-Visma | + 00 | |
| 3 | Wout van Aert | Jumbo-Visma | + 00 | |
| 4 | Pierre Latour | TotalEnergies | + 19 | + 19 |
| 5 | Mads Pedersen | Trek-Segafredo | + 22 | + 22 |
| 6 | Biniam Girmay | Intermarché-Wanty-Gobert Matériaux | + 22 | + 22 |
| 7 | Iván García Cortina | Movistar Team | + 22 | + 22 |
| 8 | Fred Wright | Bahrain Victorious | + 22 | + 22 |
| 9 | Jasper Philipsen | Alpecin-Deceuninck | + 22 | + 22 |
| 10 | Florian Sénéchal | Quick-Step Alpha Vinyl Team | + 22 | + 22 |
| 11 | Jasper Stuyven | Trek-Segafredo | + 22 | + 22 |
| 12 | Damien Touzé | AG2R Citroën Team | + 22 | + 22 |
| 13 | Samuele Battistella | Astana Qazaqstan Team | + 22 | + 22 |
| 14 | Nils Eekhoff | Team DSM | + 22 | + 22 |
| 15 | Amaury Capiot | Team Arkéa-Samsic | + 22 | + 22 |
| 16 | Aleksandr Vlasov | BORA-hansgrohe | + 22 | + 22 |
| 17 | Bauke Mollema | Trek-Segafredo | + 22 | + 22 |
| 18 | Bryan Coquard | Cofidis | + 22 | + 22 |
| 19 | Quentin Pacher | Groupama-FDJ | + 22 | + 22 |
| 20 | Hugo Houle | Israel-Premier Tech | + 22 | + 22 |
| 21 | Anthony Turgis | TotalEnergies | + 22 | + 22 |
| 22 | Aurélien Paret-peintre | AG2R Citroën Team | + 22 | + 22 |
| 23 | Guillaume Martin | Cofidis | + 22 | + 22 |
| 24 | Gorka Izagirre | Movistar Team | + 22 | + 22 |
| 25 | Matteo Jorgenson | Movistar Team | + 22 | + 22 |
| 26 | Brandon Mcnulty | UAE Team Emirates | + 22 | + 22 |
| 27 | David de La Cruz | Astana Qazaqstan Team | + 22 | + 22 |
| 28 | León Sánchez Luis | Bahrain Victorious | + 22 | + 22 |
| 29 | Ion Izagirre | Cofidis | + 22 | + 22 |
| 30 | Andreas Leknessund | Team DSM | + 22 | + 22 |
| 31 | Ben O'connor | AG2R Citroën Team | + 22 | + 22 |
| 32 | Neilson Powless | EF Education-EasyPost | + 22 | + 22 |
| 33 | Valentin Madouas | Groupama-FDJ | + 22 | + 22 |
| 34 | Jack Haig | Bahrain Victorious | + 22 | + 22 |
| 35 | Gregor Mühlberger | Movistar Team | + 22 | + 22 |
| 36 | Steff Cras | Lotto-Soudal | + 22 | + 22 |
| 37 | David Gaudu | Groupama-FDJ | + 22 | + 22 |
| 38 | Søren Kragh Andersen | Team DSM | + 22 | + 22 |
| 39 | Wout Poels | Bahrain Victorious | + 22 | + 22 |
| 40 | Joao Almeida | UAE Team Emirates | + 22 | + 22 |
| 41 | Nairo Quintana | Team Arkéa-Samsic | + 22 | + 22 |
| 42 | Jan Polanc | UAE Team Emirates | + 22 | + 22 |
| 43 | Adam Yates | INEOS Grenadiers | + 22 | + 22 |
| 44 | Georg Zimmermann | Intermarché-Wanty-Gobert Matériaux | + 22 | + 22 |
| 45 | Mauri Vansevenant | Quick-Step Alpha Vinyl Team | + 22 | + 22 |
| 46 | Clément Champoussin | AG2R Citroën Team | + 22 | + 22 |
| 47 | Daniel Martinez | INEOS Grenadiers | + 22 | + 22 |
| 48 | Alexis Vuillermoz | TotalEnergies | + 22 | + 22 |
| 49 | Zdenek Stybar | Quick-Step Alpha Vinyl Team | + 22 | + 22 |
| 50 | Dylan van Baarle | INEOS Grenadiers | + 22 | + 22 |
| 51 | Simon Yates | Team BikeExchange-Jayco | + 22 | + 22 |
| 52 | Stan Dewulf | AG2R Citroën Team | + 22 | + 22 |
| 53 | Simon Geschke | Cofidis | + 22 | + 22 |
| 54 | Danny van Poppel | BORA-hansgrohe | + 36 | + 36 |
| 55 | Max Schachmann | BORA-hansgrohe | + 36 | + 36 |
| 56 | Oliver Naesen | AG2R Citroën Team | + 36 | + 36 |
| 57 | Kristian Sbaragli | Alpecin-Deceuninck | + 36 | + 36 |
| 58 | Sebastian Molano | UAE Team Emirates | + 36 | + 36 |
| 59 | Luka Mezgec | Team BikeExchange-Jayco | + 36 | + 36 |
| 60 | Gino Mäder | Bahrain Victorious | + 36 | + 36 |
| 61 | Steven Kruijswijk | Jumbo-Visma | + 36 | + 36 |
| 62 | Dorian Godon | AG2R Citroën Team | + 36 | + 36 |
| 63 | Stefan Bissegger | EF Education-EasyPost | + 36 | + 36 |
| 64 | Fredrik Hagen Carl | Israel-Premier Tech | + 36 | + 36 |
| 65 | Tom van Asbroeck | Israel-Premier Tech | + 44 | + 44 |
| 66 | Silvan Dillier | Alpecin-Deceuninck | + 46 | + 46 |
| 67 | Fabien Doubey | TotalEnergies | + 46 | + 46 |
| 68 | Johan Jacobs | Movistar Team | + 46 | + 46 |
| 69 | Luca Mozzato | B&B Hotels-KTM | + 56 | + 56 |
| 70 | Fabio Jakobsen | Quick-Step Alpha Vinyl Team | + 01:22 | + 01:22 |
| 71 | Guillaume Boivin | Israel-Premier Tech | + 01:35 | + 01:35 |
| 72 | Yves Lampaert | Quick-Step Alpha Vinyl Team | + 01:38 | + 01:38 |
| 73 | Connor Swift | Team Arkéa-Samsic | + 01:48 | + 01:48 |
| 74 | Nils Politt | BORA-hansgrohe | + 02:04 | + 02:04 |
| 75 | Julien Bernard | Trek-Segafredo | + 02:04 | + 02:04 |
| 76 | Jérémy Lecroq | B&B Hotels-KTM | + 02:04 | + 02:04 |
| 77 | Sébastien Grignard | Lotto-Soudal | + 02:04 | + 02:04 |
| 78 | Fabio Felline | Astana Qazaqstan Team | + 02:04 | + 02:04 |
| 79 | Loic Vliegen | Intermarché-Wanty-Gobert Matériaux | + 02:04 | + 02:04 |
| 80 | Philippe Gilbert | Lotto-Soudal | + 02:04 | + 02:04 |
| 81 | Kevin Vermaerke | Team DSM | + 02:04 | + 02:04 |
| 82 | John Degenkolb | Team DSM | + 02:04 | + 02:04 |
| 83 | Laurent Pichon | Team Arkéa-Samsic | + 02:04 | + 02:04 |
| 84 | Ryan Mullen | BORA-hansgrohe | + 02:04 | + 02:04 |
| 85 | Sam Bennett | BORA-hansgrohe | + 02:04 | + 02:04 |
| 86 | Jordi Warlop | B&B Hotels-KTM | + 02:04 | + 02:04 |
| 87 | Mads Würtz Schmidt | Israel-Premier Tech | + 02:04 | + 02:04 |
| 88 | Geoffrey Soupe | TotalEnergies | + 02:04 | + 02:04 |
| 89 | Yevgeniy Fedorov | Astana Qazaqstan Team | + 02:04 | + 02:04 |
| 90 | Alex Kirsch | Trek-Segafredo | + 02:04 | + 02:04 |
| 91 | Julius van den Berg | EF Education-EasyPost | + 02:04 | + 02:04 |
| 92 | Simon Carr | EF Education-EasyPost | + 02:04 | + 02:04 |
| 93 | Jens Keukeleire | EF Education-EasyPost | + 02:04 | + 02:04 |
| 94 | Jonas Rickaert | Alpecin-Deceuninck | + 02:04 | + 02:04 |
| 95 | Imanol Erviti | Movistar Team | + 02:04 | + 02:04 |
| 96 | Ruben Fernandez | Cofidis | + 02:04 | + 02:04 |
| 97 | Mathieu Burgaudeau | TotalEnergies | + 02:04 | + 02:04 |
| 98 | Stefan Küng | Groupama-FDJ | + 02:04 | + 02:04 |
| 99 | Niccolo Bonifazio | TotalEnergies | + 02:04 | + 02:04 |
| 100 | Rein Taaramäe | Intermarché-Wanty-Gobert Matériaux | + 02:04 | + 02:04 |
| 101 | Dylan Groenewegen | Team BikeExchange-Jayco | + 02:04 | + 02:04 |
| 102 | Luke Durbridge | Team BikeExchange-Jayco | + 02:04 | + 02:04 |
| 103 | Nick Schultz | Team BikeExchange-Jayco | + 02:04 | + 02:04 |
| 104 | Mike Teunissen | Jumbo-Visma | + 02:04 | + 02:04 |
| 105 | Nathan van Hooydonck | Jumbo-Visma | + 02:04 | + 02:04 |
| 106 | Jay Vine | Alpecin-Deceuninck | + 02:04 | + 02:04 |
| 107 | Harm Vanhoucke | Lotto-Soudal | + 02:04 | + 02:04 |
| 108 | Matteo Trentin | UAE Team Emirates | + 02:43 | + 02:43 |
| 109 | Lukasz Wisniowski | EF Education-EasyPost | + 02:43 | + 02:43 |
| 110 | Stefan de Bod | Astana Qazaqstan Team | + 02:43 | + 02:43 |
| 111 | Tom Bohli | Cofidis | + 02:43 | + 02:43 |
| 112 | Max Walscheid | Cofidis | + 02:43 | + 02:43 |
| 113 | James Piccoli | Israel-Premier Tech | + 02:43 | + 02:43 |
| 114 | Owain Doull | EF Education-EasyPost | + 02:43 | + 02:43 |
| 115 | Olivier Le Gac | Groupama-FDJ | + 02:43 | + 02:43 |
| 116 | Albert Torres | Movistar Team | + 02:43 | + 02:43 |
| 117 | Otto Vergaerde | Trek-Segafredo | + 03:32 | + 03:32 |
| 118 | Matthew Holmes | Lotto-Soudal | + 03:32 | + 03:32 |
| 119 | Alexis Gougeard | B&B Hotels-KTM | + 03:32 | + 03:32 |
| 120 | Senne Leysen | Alpecin-Deceuninck | + 05:19 | + 05:19 |
| 121 | Tobias Bayer | Alpecin-Deceuninck | + 05:19 | + 05:19 |
| 122 | Rohan Dennis | Jumbo-Visma | + 06:32 | + 06:32 |
| 123 | Cyril Lemoine | B&B Hotels-KTM | + 06:41 | + 06:41 |
| 124 | Victor Koretzky | B&B Hotels-KTM | + 06:41 | + 06:41 |
| 125 | Nicolas Edet | Team Arkéa-Samsic | + 06:41 | + 06:41 |
| 126 | Franck Bonnamour | B&B Hotels-KTM | + 06:41 | + 06:41 |
| 127 | Matis Louvel | Team Arkéa-Samsic | + 06:41 | + 06:41 |
| 128 | Lucas Hamilton | Team BikeExchange-Jayco | + 06:41 | + 06:41 |
| 129 | Michael Storer | Groupama-FDJ | + 06:41 | + 06:41 |
| 130 | Thomas de Gendt | Lotto-Soudal | + 06:41 | + 06:41 |
| 131 | Markus Hoelgaard | Trek-Segafredo | + 06:41 | + 06:41 |
| 132 | Aimé de Gendt | Intermarché-Wanty-Gobert Matériaux | + 06:41 | + 06:41 |
| 133 | Frederik Frison | Lotto-Soudal | + 06:41 | + 06:41 |
| 134 | Baptiste Planckaert | Intermarché-Wanty-Gobert Matériaux | + 06:41 | + 06:41 |
| 135 | Domen Novak | Bahrain Victorious | + 06:41 | + 06:41 |
| 136 | Sonny Colbrelli | Bahrain Victorious | + 06:41 | + 06:41 |
| 137 | Yuriy Natarov | Astana Qazaqstan Team | + 06:41 | + 06:41 |
| 138 | Dimitri Claeys | Intermarché-Wanty-Gobert Matériaux | + 06:41 | + 06:41 |
| 139 | Finn Fisher-black | UAE Team Emirates | + 06:46 | + 06:46 |
| 140 | Ethan Hayter | INEOS Grenadiers | + 06:46 | + 06:46 |
| 141 | Campbell Stewart | Team BikeExchange-Jayco | + 06:46 | + 06:46 |
| 142 | Nico Denz | Team DSM | + 06:46 | + 06:46 |
| 143 | Cees Bol | Team DSM | + 06:46 | + 06:46 |
| 144 | Omar Fraile | INEOS Grenadiers | + 06:46 | + 06:46 |
| 145 | Andrey Amador | INEOS Grenadiers | + 06:46 | + 06:46 |
| 146 | Iljo Keisse | Quick-Step Alpha Vinyl Team | + 06:46 | + 06:46 |
| 147 | Michael Mørkøv | Quick-Step Alpha Vinyl Team | + 06:46 | + 06:46 |
| 148 | Simon Guglielmi | Team Arkéa-Samsic | + 06:46 | + 06:46 |
| 149 | Alexys Brunel | UAE Team Emirates | + 06:46 | + 06:46 |
| 150 | Kevin Geniets | Groupama-FDJ | + 06:46 | + 06:46 |
| 151 | Luke Rowe | INEOS Grenadiers | + 06:46 | + 06:46 |
| 152 | Dmitriy Gruzdev | Astana Qazaqstan Team | + 08:53 | + 08:53 |
| 153 | Rudy Barbier | Israel-Premier Tech | + 10:24 | + 10:24 |