| # | Rider | Team | Time | Gap |
|---|---|---|---|---|
| 1 | Dylan Teuns | BMC Racing Team | 27:07:47 | |
| 2 | Rafal Majka | Bora-Hansgrohe | + 02 | + 02 |
| 3 | Wout Poels | Team Sky | + 03 | + 03 |
| 4 | Wilco Kelderman | Team Sunweb | + 10 | + 10 |
| 5 | Adam Yates | Orica-Scott | + 13 | + 13 |
| 6 | Domenico Pozzovivo | AG2R La Mondiale | + 23 | + 23 |
| 7 | Sam Oomen | Team Sunweb | + 36 | + 36 |
| 8 | Jack Haig | Orica-Scott | + 57 | + 57 |
| 9 | Vincenzo Nibali | Bahrain-Merida | + 01:19 | + 01:19 |
| 10 | Rui Costa | UAE Team Emirates | + 01:22 | + 01:22 |
| 11 | Ilnur Zakarin | Katusha-Alpecin | + 01:29 | + 01:29 |
| 12 | Bob Jungels | Quick-Step Floors | + 01:35 | + 01:35 |
| 13 | Christian Eiking Odd | FDJ | + 02:46 | + 02:46 |
| 14 | Gorka Izagirre | Movistar Team | + 02:56 | + 02:56 |
| 15 | Bart de Clercq | Lotto-Soudal | + 03:01 | + 03:01 |
| 16 | Tomasz Marczynski | Lotto-Soudal | + 03:32 | + 03:32 |
| 17 | Valerio Conti | UAE Team Emirates | + 03:47 | + 03:47 |
| 18 | León Sánchez Luis | Astana Pro Team | + 03:52 | + 03:52 |
| 19 | Marek Rutkiewicz | Poland | + 04:41 | + 04:41 |
| 20 | Ben O'connor | Team Dimension Data | + 05:05 | + 05:05 |
| 21 | François Bidard | AG2R La Mondiale | + 05:59 | + 05:59 |
| 22 | Jeremy Maison | FDJ | + 06:36 | + 06:36 |
| 23 | Joaquin Rojas José | Movistar Team | + 06:44 | + 06:44 |
| 24 | Samuel Sánchez | BMC Racing Team | + 07:24 | + 07:24 |
| 25 | Tejay van Garderen | BMC Racing Team | + 07:40 | + 07:40 |
| 26 | Gregor Mühlberger | Bora-Hansgrohe | + 08:38 | + 08:38 |
| 27 | Diego Rosa | Team Sky | + 09:36 | + 09:36 |
| 28 | Giovanni Visconti | Bahrain-Merida | + 09:43 | + 09:43 |
| 29 | Rafael Valls | Lotto-Soudal | + 09:53 | + 09:53 |
| 30 | Pavel Kochetkov | Katusha-Alpecin | + 11:57 | + 11:57 |
| 31 | Sander Armee | Lotto-Soudal | + 12:23 | + 12:23 |
| 32 | Daan Olivier | Team Lotto NL-Jumbo | + 14:36 | + 14:36 |
| 33 | Michal Schlegel | CCC Sprandi Polkowice | + 15:38 | + 15:38 |
| 34 | Petr Vakoc | Quick-Step Floors | + 16:08 | + 16:08 |
| 35 | Peter Sagan | Bora-Hansgrohe | + 17:03 | + 17:03 |
| 36 | Pawel Cieslik | Poland | + 19:44 | + 19:44 |
| 37 | Salvatore Puccio | Team Sky | + 23:30 | + 23:30 |
| 38 | Winner Anacona | Movistar Team | + 23:43 | + 23:43 |
| 39 | Franco Pellizotti | Bahrain-Merida | + 24:21 | + 24:21 |
| 40 | Jesús Hernández | Trek-Segafredo | + 24:31 | + 24:31 |
| 41 | Davide Villella | Cannondale-Drapac Pro Cycling | + 24:50 | + 24:50 |
| 42 | Jan Hirt | CCC Sprandi Polkowice | + 25:32 | + 25:32 |
| 43 | Hubert Dupont | AG2R La Mondiale | + 25:36 | + 25:36 |
| 44 | Koen Bouwman | Team Lotto NL-Jumbo | + 25:41 | + 25:41 |
| 45 | Rohan Dennis | BMC Racing Team | + 26:45 | + 26:45 |
| 46 | Rubén Plaza | Orica-Scott | + 26:48 | + 26:48 |
| 47 | Antwan Tolhoek | Team Lotto NL-Jumbo | + 26:49 | + 26:49 |
| 48 | Ivan Rovny | Gazprom-RusVelo | + 26:58 | + 26:58 |
| 49 | Tom-jelte Slagter | Cannondale-Drapac Pro Cycling | + 27:01 | + 27:01 |
| 50 | David Lozano | Team Novo Nordisk | + 27:16 | + 27:16 |
| 51 | Simon Spilak | Katusha-Alpecin | + 30:04 | + 30:04 |
| 52 | Maxime Monfort | Lotto-Soudal | + 30:18 | + 30:18 |
| 53 | Floris Gerts | BMC Racing Team | + 32:13 | + 32:13 |
| 54 | Dayer Quintana | Movistar Team | + 33:55 | + 33:55 |
| 55 | Floris de Tier | Team Lotto NL-Jumbo | + 35:42 | + 35:42 |
| 56 | Javier Mejias | Team Novo Nordisk | + 35:53 | + 35:53 |
| 57 | Michal Golas | Team Sky | + 36:13 | + 36:13 |
| 58 | Sergey Lagutin | Gazprom-RusVelo | + 36:38 | + 36:38 |
| 59 | Julien Bernard | Trek-Segafredo | + 37:05 | + 37:05 |
| 60 | Matej Mohoric | UAE Team Emirates | + 37:15 | + 37:15 |
| 61 | Pavel Brutt | Gazprom-RusVelo | + 39:22 | + 39:22 |
| 62 | Alberto Losada | Katusha-Alpecin | + 41:11 | + 41:11 |
| 63 | Przemyslaw Niemiec | UAE Team Emirates | + 42:32 | + 42:32 |
| 64 | Matvei Mamykin | Katusha-Alpecin | + 42:37 | + 42:37 |
| 65 | Emanuel Piaskowy | Poland | + 42:46 | + 42:46 |
| 66 | Joe Dombrowski | Cannondale-Drapac Pro Cycling | + 44:29 | + 44:29 |
| 67 | Lennard Kämna | Team Sunweb | + 44:55 | + 44:55 |
| 68 | Rory Sutherland | Movistar Team | + 45:46 | + 45:46 |
| 69 | Lukasz Wisniowski | Team Sky | + 47:29 | + 47:29 |
| 70 | Robert Power | Orica-Scott | + 47:39 | + 47:39 |
| 71 | Domen Novak | Bahrain-Merida | + 48:14 | + 48:14 |
| 72 | Nico Denz | AG2R La Mondiale | + 48:40 | + 48:40 |
| 73 | Natnael Berhane | Team Dimension Data | + 52:10 | + 52:10 |
| 74 | Patrick Konrad | Bora-Hansgrohe | + 52:41 | + 52:41 |
| 75 | Toms Skujins | Cannondale-Drapac Pro Cycling | + 52:57 | + 52:57 |
| 76 | Jan Tratnik | CCC Sprandi Polkowice | + 53:04 | + 53:04 |
| 77 | Matti Breschel | Astana Pro Team | + 53:27 | + 53:27 |
| 78 | Remi Cavagna | Quick-Step Floors | + 55:29 | + 55:29 |
| 79 | Maciej Paterski | CCC Sprandi Polkowice | + 55:30 | + 55:30 |
| 80 | Youcef Reguigui | Team Dimension Data | + 55:40 | + 55:40 |
| 81 | Cesare Benedetti | Bora-Hansgrohe | + 56:17 | + 56:17 |
| 82 | Enrico Battaglin | Team Lotto NL-Jumbo | + 57:00 | + 57:00 |
| 83 | Niccolo Bonifazio | Bahrain-Merida | + 01:03:00 | + 01:03:00 |
| 84 | Boy van Poppel | Trek-Segafredo | + 01:03:05 | + 01:03:05 |
| 85 | Nicholas Dougall | Team Dimension Data | + 01:03:31 | + 01:03:31 |
| 86 | Bert de Backer | Team Sunweb | + 01:06:20 | + 01:06:20 |
| 87 | Bert-jan Lindeman | Team Lotto NL-Jumbo | + 01:07:10 | + 01:07:10 |
| 88 | Adam Stachowiak | Poland | + 01:07:22 | + 01:07:22 |
| 89 | Lorrenzo Manzin | FDJ | + 01:08:00 | + 01:08:00 |
| 90 | Kamil Gradek | Poland | + 01:10:49 | + 01:10:49 |
| 91 | Martijn Keizer | Team Lotto NL-Jumbo | + 01:11:22 | + 01:11:22 |
| 92 | Charles Planet | Team Novo Nordisk | + 01:11:33 | + 01:11:33 |
| 93 | Antonio Nibali | Bahrain-Merida | + 01:15:56 | + 01:15:56 |
| 94 | Johannes Fröhlinger | Team Sunweb | + 01:19:27 | + 01:19:27 |
| 95 | Caleb Ewan | Orica-Scott | + 01:28:14 | + 01:28:14 |
| 96 | Aleksejs Saramotins | Bora-Hansgrohe | + 01:42:32 | + 01:42:32 |