| # | Rider | Team | Time | Gap |
|---|---|---|---|---|
| 1 | Nairo Quintana | Movistar Team | 25:56:27 | |
| 2 | Rohan Dennis | BMC Racing Team | + 25 | + 25 |
| 3 | Thibaut Pinot | FDJ | + 36 | + 36 |
| 4 | Primoz Roglic | Team Lotto NL-Jumbo | + 45 | + 45 |
| 5 | Geraint Thomas | Team Sky | + 58 | + 58 |
| 6 | Tom Dumoulin | Team Sunweb | + 01:01 | + 01:01 |
| 7 | Jonathan Castroviejo | Movistar Team | + 01:18 | + 01:18 |
| 8 | Rigoberto Uran | Cannondale-Drapac Pro Cycling | + 01:36 | + 01:36 |
| 9 | Bauke Mollema | Trek-Segafredo | + 01:38 | + 01:38 |
| 10 | Domenico Pozzovivo | AG2R La Mondiale | + 01:59 | + 01:59 |
| 11 | Simon Spilak | Katusha-Alpecin | + 02:04 | + 02:04 |
| 12 | Damiano Caruso | BMC Racing Team | + 02:10 | + 02:10 |
| 13 | Daniel Moreno | Movistar Team | + 02:43 | + 02:43 |
| 14 | Bob Jungels | Quick-Step Floors | + 02:53 | + 02:53 |
| 15 | Michele Scarponi | Astana Pro Team | + 03:07 | + 03:07 |
| 16 | Egan Bernal | Androni-Sidermec-Bottecchia | + 03:20 | + 03:20 |
| 17 | Sebastien Reichenbach | FDJ | + 03:23 | + 03:23 |
| 18 | Rui Costa | UAE Team Emirates | + 03:28 | + 03:28 |
| 19 | Robert Gesink | Team Lotto NL-Jumbo | + 03:31 | + 03:31 |
| 20 | Andrey Amador | Movistar Team | + 03:35 | + 03:35 |
| 21 | Tejay van Garderen | BMC Racing Team | + 03:40 | + 03:40 |
| 22 | León Sánchez Luis | Astana Pro Team | + 03:51 | + 03:51 |
| 23 | Mattia Cattaneo | Androni-Sidermec-Bottecchia | + 04:52 | + 04:52 |
| 24 | Rafal Majka | Bora-Hansgrohe | + 05:00 | + 05:00 |
| 25 | Giovanni Visconti | Bahrain-Merida | + 05:54 | + 05:54 |
| 26 | Vincenzo Nibali | Bahrain-Merida | + 06:10 | + 06:10 |
| 27 | Michal Kwiatkowski | Team Sky | + 07:34 | + 07:34 |
| 28 | Fabio Felline | Trek-Segafredo | + 07:40 | + 07:40 |
| 29 | Pavel Kochetkov | Katusha-Alpecin | + 11:09 | + 11:09 |
| 30 | Edvald Boasson-hagen | Team Dimension Data | + 11:39 | + 11:39 |
| 31 | Mikel Landa | Team Sky | + 12:20 | + 12:20 |
| 32 | Jan Bakelants | AG2R La Mondiale | + 12:31 | + 12:31 |
| 33 | Georg Preidler | Team Sunweb | + 14:14 | + 14:14 |
| 34 | Franco Pellizotti | Bahrain-Merida | + 14:20 | + 14:20 |
| 35 | Søren Kragh Andersen | Team Sunweb | + 16:26 | + 16:26 |
| 36 | Greg van Avermaet | BMC Racing Team | + 16:46 | + 16:46 |
| 37 | Steve Morabito | FDJ | + 17:20 | + 17:20 |
| 38 | Diego Rosa | Team Sky | + 18:31 | + 18:31 |
| 39 | Tobias Ludvigsson | FDJ | + 19:03 | + 19:03 |
| 40 | Francesco Gavazzi | Androni-Sidermec-Bottecchia | + 19:40 | + 19:40 |
| 41 | Reto Hollenstein | Katusha-Alpecin | + 19:43 | + 19:43 |
| 42 | Andrey Zeits | Astana Pro Team | + 19:51 | + 19:51 |
| 43 | Stake Laengen Vegard | UAE Team Emirates | + 20:18 | + 20:18 |
| 44 | Maxime Monfort | Lotto-Soudal | + 20:20 | + 20:20 |
| 45 | Pawel Poljanski | Bora-Hansgrohe | + 21:00 | + 21:00 |
| 46 | Enrico Battaglin | Team Lotto NL-Jumbo | + 21:58 | + 21:58 |
| 47 | Peter Sagan | Bora-Hansgrohe | + 22:25 | + 22:25 |
| 48 | Zdenek Stybar | Quick-Step Floors | + 22:28 | + 22:28 |
| 49 | Maurits Lammertink | Katusha-Alpecin | + 25:41 | + 25:41 |
| 50 | Matteo Trentin | Quick-Step Floors | + 26:29 | + 26:29 |
| 51 | Tomasz Marczynski | Lotto-Soudal | + 26:35 | + 26:35 |
| 52 | Salvatore Puccio | Team Sky | + 27:47 | + 27:47 |
| 53 | Michael Hepburn | Orica-Scott | + 28:47 | + 28:47 |
| 54 | Marcus Burghardt | Bora-Hansgrohe | + 28:57 | + 28:57 |
| 55 | Daryl Impey | Orica-Scott | + 29:07 | + 29:07 |
| 56 | Alberto Bettiol | Cannondale-Drapac Pro Cycling | + 29:17 | + 29:17 |
| 57 | Hugo Houle | AG2R La Mondiale | + 30:25 | + 30:25 |
| 58 | Scott Thwaites | Team Dimension Data | + 30:28 | + 30:28 |
| 59 | Jasper Stuyven | Trek-Segafredo | + 30:40 | + 30:40 |
| 60 | Vasil Kiryienka | Team Sky | + 31:56 | + 31:56 |
| 61 | Gianni Moscon | Team Sky | + 32:56 | + 32:56 |
| 62 | Mike Teunissen | Team Sunweb | + 33:02 | + 33:02 |
| 63 | Matthieu Ladagnous | FDJ | + 33:54 | + 33:54 |
| 64 | Rein Taaramäe | Katusha-Alpecin | + 34:10 | + 34:10 |
| 65 | Javier Moreno | Bahrain-Merida | + 34:10 | + 34:10 |
| 66 | Tiesj Benoot | Lotto-Soudal | + 34:30 | + 34:30 |
| 67 | Koen de Kort | Trek-Segafredo | + 34:45 | + 34:45 |
| 68 | Angel Vicioso | Katusha-Alpecin | + 35:28 | + 35:28 |
| 69 | Marco Marcato | UAE Team Emirates | + 35:29 | + 35:29 |
| 70 | Simon Clarke | Cannondale-Drapac Pro Cycling | + 36:00 | + 36:00 |
| 71 | Anthony Roux | FDJ | + 36:07 | + 36:07 |
| 72 | Sebastian Langeveld | Cannondale-Drapac Pro Cycling | + 36:11 | + 36:11 |
| 73 | Matej Mohoric | UAE Team Emirates | + 36:16 | + 36:16 |
| 74 | Nelson Oliveira | Movistar Team | + 37:14 | + 37:14 |
| 75 | Niki Terpstra | Quick-Step Floors | + 37:57 | + 37:57 |
| 76 | Ben Gastauer | AG2R La Mondiale | + 39:39 | + 39:39 |
| 77 | Alexandre Geniez | AG2R La Mondiale | + 40:19 | + 40:19 |
| 78 | Steve Cummings | Team Dimension Data | + 40:47 | + 40:47 |
| 79 | Bart de Clercq | Lotto-Soudal | + 40:52 | + 40:52 |
| 80 | Cesare Benedetti | Bora-Hansgrohe | + 41:34 | + 41:34 |
| 81 | Chad Haga | Team Sunweb | + 42:49 | + 42:49 |
| 82 | Rick Zabel | Katusha-Alpecin | + 44:27 | + 44:27 |
| 83 | Oscar Gatto | Astana Pro Team | + 44:40 | + 44:40 |
| 84 | Jos van Emden | Team Lotto NL-Jumbo | + 44:55 | + 44:55 |
| 85 | Julien Vermote | Quick-Step Floors | + 44:55 | + 44:55 |
| 86 | Tom Boonen | Quick-Step Floors | + 46:22 | + 46:22 |
| 87 | Jürgen Roelandts | Lotto-Soudal | + 46:35 | + 46:35 |
| 88 | Iljo Keisse | Quick-Step Floors | + 47:13 | + 47:13 |
| 89 | Jasha Sütterlin | Movistar Team | + 47:42 | + 47:42 |
| 90 | Kanstantsin Sivtsov | Bahrain-Merida | + 48:09 | + 48:09 |
| 91 | Iuri Filosi | Nippo-Vini Fantini | + 48:53 | + 48:53 |
| 92 | Davide Ballerini | Androni-Sidermec-Bottecchia | + 50:46 | + 50:46 |
| 93 | Ivan Santaromita | Nippo-Vini Fantini | + 51:26 | + 51:26 |
| 94 | Maciej Bodnar | Bora-Hansgrohe | + 51:59 | + 51:59 |
| 95 | Sacha Modolo | UAE Team Emirates | + 52:28 | + 52:28 |
| 96 | Gediminas Bagdonas | AG2R La Mondiale | + 53:10 | + 53:10 |
| 97 | Jérémy Roy | FDJ | + 53:17 | + 53:17 |
| 98 | Alexis Gougeard | AG2R La Mondiale | + 54:10 | + 54:10 |
| 99 | Paul Martens | Team Lotto NL-Jumbo | + 54:15 | + 54:15 |
| 100 | Fernando Gaviria | Quick-Step Floors | + 54:40 | + 54:40 |
| 101 | Daniele Bennati | Movistar Team | + 55:03 | + 55:03 |
| 102 | Marco Frapporti | Androni-Sidermec-Bottecchia | + 55:16 | + 55:16 |
| 103 | Jose Lobato Juan | Team Lotto NL-Jumbo | + 56:27 | + 56:27 |
| 104 | Lars Boom | Team Lotto NL-Jumbo | + 57:12 | + 57:12 |
| 105 | Marco Canola | Nippo-Vini Fantini | + 57:51 | + 57:51 |
| 106 | Raffaello Bonusi | Androni-Sidermec-Bottecchia | + 58:48 | + 58:48 |
| 107 | Simone Velasco | Bardiani CSF | + 58:54 | + 58:54 |
| 108 | Dmitriy Gruzdev | Astana Pro Team | + 59:40 | + 59:40 |
| 109 | William Bonnet | FDJ | + 01:00:03 | + 01:00:03 |
| 110 | Boy van Poppel | Trek-Segafredo | + 01:00:39 | + 01:00:39 |
| 111 | Luka Mezgec | Orica-Scott | + 01:00:41 | + 01:00:41 |
| 112 | Jens Debusschere | Lotto-Soudal | + 01:01:08 | + 01:01:08 |
| 113 | Matvei Mamykin | Katusha-Alpecin | + 01:01:15 | + 01:01:15 |
| 114 | Jempy Drucker | BMC Racing Team | + 01:01:21 | + 01:01:21 |
| 115 | Michael Grosu Eduard | Nippo-Vini Fantini | + 01:01:51 | + 01:01:51 |
| 116 | Manuel Quinziato | BMC Racing Team | + 01:02:43 | + 01:02:43 |
| 117 | Elia Viviani | Team Sky | + 01:02:55 | + 01:02:55 |
| 118 | Matthias Brändle | Trek-Segafredo | + 01:02:58 | + 01:02:58 |
| 119 | Dylan van Baarle | Cannondale-Drapac Pro Cycling | + 01:03:13 | + 01:03:13 |
| 120 | Enrico Barbin | Bardiani CSF | + 01:03:28 | + 01:03:28 |
| 121 | Ramon Sinkeldam | Team Sunweb | + 01:03:48 | + 01:03:48 |
| 122 | Aleksejs Saramotins | Bora-Hansgrohe | + 01:04:06 | + 01:04:06 |
| 123 | Hideto Nakane | Nippo-Vini Fantini | + 01:05:03 | + 01:05:03 |
| 124 | Roberto Ferrari | UAE Team Emirates | + 01:05:35 | + 01:05:35 |
| 125 | Luca Wackermann | Bardiani CSF | + 01:05:48 | + 01:05:48 |
| 126 | Ryan Mullen | Cannondale-Drapac Pro Cycling | + 01:06:23 | + 01:06:23 |
| 127 | Andrea Palini | Androni-Sidermec-Bottecchia | + 01:06:53 | + 01:06:53 |
| 128 | Mattia Frapporti | Androni-Sidermec-Bottecchia | + 01:07:30 | + 01:07:30 |
| 129 | Sep Vanmarcke | Cannondale-Drapac Pro Cycling | + 01:08:20 | + 01:08:20 |
| 130 | Moreno Moser | Astana Pro Team | + 01:08:25 | + 01:08:25 |
| 131 | Andriy Grivko | Astana Pro Team | + 01:08:26 | + 01:08:26 |
| 132 | Joonas Henttala | Team Novo Nordisk | + 01:09:29 | + 01:09:29 |
| 133 | Mark Renshaw | Team Dimension Data | + 01:10:07 | + 01:10:07 |
| 134 | Daniel Oss | BMC Racing Team | + 01:10:08 | + 01:10:08 |
| 135 | Manuele Boaro | Bahrain-Merida | + 01:10:22 | + 01:10:22 |
| 136 | Bernhard Eisel | Team Dimension Data | + 01:10:54 | + 01:10:54 |
| 137 | Marco Coledan | Trek-Segafredo | + 01:11:02 | + 01:11:02 |
| 138 | Robert Thomson Jay | Team Dimension Data | + 01:12:40 | + 01:12:40 |
| 139 | Alex Dowsett | Movistar Team | + 01:12:48 | + 01:12:48 |
| 140 | Javier Mejias | Team Novo Nordisk | + 01:12:54 | + 01:12:54 |
| 141 | Johann van Zyl | Team Dimension Data | + 01:12:57 | + 01:12:57 |
| 142 | Albert Timmer | Team Sunweb | + 01:13:44 | + 01:13:44 |
| 143 | Mirco Maestri | Bardiani CSF | + 01:14:45 | + 01:14:45 |
| 144 | Alan Marangoni | Nippo-Vini Fantini | + 01:15:18 | + 01:15:18 |
| 145 | Simone Andreetta | Bardiani CSF | + 01:15:21 | + 01:15:21 |
| 146 | Marko Kump | UAE Team Emirates | + 01:16:00 | + 01:16:00 |
| 147 | David Lozano | Team Novo Nordisk | + 01:17:51 | + 01:17:51 |
| 148 | Filippo Ganna | UAE Team Emirates | + 01:19:14 | + 01:19:14 |
| 149 | Max Walscheid | Team Sunweb | + 01:20:09 | + 01:20:09 |
| 150 | Andrea Peron | Team Novo Nordisk | + 01:20:16 | + 01:20:16 |
| 151 | Nicola Ruffoni | Bardiani CSF | + 01:20:37 | + 01:20:37 |
| 152 | Martijn Verschoor | Team Novo Nordisk | + 01:22:04 | + 01:22:04 |
| 153 | Nicola Boem | Bardiani CSF | + 01:22:05 | + 01:22:05 |
| 154 | Kohei Uchima | Nippo-Vini Fantini | + 01:23:04 | + 01:23:04 |
| 155 | Matteo Pelucchi | Bora-Hansgrohe | + 01:23:26 | + 01:23:26 |