| Alberto Contador (ESP) | Astana | 85:48:35 |
| 2 | Andy Schleck (LUX) | Team Saxo Bank | +00:04:11 |
| 3 | Lance Armstrong (USA) | Astana | +00:05:24 |
| 4 | Bradley Wiggins (GBR) | Garmin - Slipstream | +00:06:01 |
| 5 | Fränk Schleck (LUX) | Team Saxo Bank | +00:06:04 |
| 6 | Andréas Kloden (GER) | Astana | +00:06:42 |
| 7 | Vincenzo Nibali (ITA) | Liquigas | +00:07:35 |
| 8 | Christian Vande Velde (USA) | Garmin - Slipstream | +00:12:04 |
| 9 | Roman Kreuziger (CZE) | Liquigas | +00:14:16 |
| 10 | Christophe Le Mevel (FRA) | Française des Jeux | +00:14:25 |
| 11 | Mikel Astarloza (ESP) | Euskaltel - Euskadi | +00:14:44 |
| 12 | Sandy Casar (FRA) | Française des Jeux | +00:17:19 |
| 13 | Vladimir Karpets (RUS) | Team Katusha | +00:18:34 |
| 14 | Rinaldo Nocentini (ITA) | AG2R-La Mondiale | +00:20:45 |
| 15 | Jurgen van den Broeck (BEL) | Silence - Lotto | +00:20:50 |
| 16 | Stephane Goubert (FRA) | AG2R-La Mondiale | +00:22:29 |
| 17 | Carlos Sastre (ESP) | Cervelo TestTeam | +00:26:21 |
| 18 | Alexandre Botcharov (RUS) | Team Katusha | +00:29:33 |
| 19 | George Hincapie (USA) | Team Columbia - High Road | +00:33:27 |
| 20 | Sylvain Chavanel (FRA) | Quick Step | +00:34:09 |
| 21 | Christian Knees (GER) | Team Milram | +00:34:48 |
| 22 | Pierre Rolland (FRA) | Bbox Bouygues Telecom | +00:37:44 |
| 23 | Nicholas Roche (IRL) | AG2R-La Mondiale | +00:38:20 |
| 24 | Linus Gerdemann (GER) | Team Milram | +00:38:35 |
| 25 | Brice Feillu (FRA) | Agritubel | +00:41:14 |
| 26 | Luis-Leon Sanchez (ESP) | Caisse d'Épargne | +00:41:27 |
| 27 | Haimar Zubeldia (ESP) | Astana | +00:43:34 |
| 28 | Maxime Monfort (BEL) | Team Columbia - High Road | +00:43:54 |
| 29 | Christophe Moreau (FRA) | Agritubel | +00:44:33 |
| 30 | Cadel Evans (AUS) | Silence - Lotto | +00:45:24 |
| 31 | Nicki Sorensen (DEN) | Team Saxo Bank | +00:46:34 |
| 32 | Peter Velits (SVK) | Team Milram | +00:46:35 |
| 33 | Hubert Dupont (FRA) | AG2R-La Mondiale | +00:49:43 |
| 34 | Chris Anker Sorensen (DEN) | Team Saxo Bank | +00:49:47 |
| 35 | Sergio Paulinho (POR) | Astana | +00:54:00 |
| 36 | Tony Martin (GER) | Team Columbia - High Road | +00:55:04 |
| Franco Pellizotti (ITA) | Liquigas | +00:56:19 |
| 38 | Sebastien Minard (FRA) | Cofidis | +00:57:37 |
| 39 | Luis Pasamontes (ESP) | Caisse d'Épargne | +00:57:47 |
| 40 | Serguei Ivanov (RUS) | Team Katusha | +01:00:21 |
| 41 | Yaroslav Popovych (UKR) | Astana | +01:01:08 |
| 42 | Laurent Lefevre (FRA) | Bbox Bouygues Telecom | +01:01:29 |
| 43 | Rémi Pauriol (FRA) | Cofidis | +01:03:04 |
| 44 | Egoi Martinez (ESP) | Euskaltel - Euskadi | +01:07:20 |
| 45 | Volodymir Gustov (UKR) | Cervelo TestTeam | +01:08:15 |
| 46 | Matthew Lloyd (AUS) | Silence - Lotto | +01:09:05 |
| 47 | Yury Trofimov (RUS) | Bbox Bouygues Telecom | +01:09:23 |
| 48 | Jérémy Roy (FRA) | Française des Jeux | +01:09:23 |
| 49 | Ryder Hesjedal (CAN) | Garmin - Slipstream | +01:14:03 |
| 50 | Gustav Larsson (SWE) | Team Saxo Bank | +01:15:22 |
| 51 | Denis Menchov (RUS) | Rabobank | +01:17:04 |
| 52 | Rigoberto Uran (COL) | Caisse d'Épargne | +01:20:20 |
| 53 | David Loosli (SUI) | Lampre - N.G.C | +01:21:56 |
| 54 | Grischa Niermann (HOL) | Rabobank | +01:21:59 |
| 55 | Sylvain Calzati (FRA) | Agritubel | +01:25:47 |
| 56 | Pierrick Fedrigo (FRA) | Bbox Bouygues Telecom | +01:26:07 |
| 57 | Kim Kirchen (LUX) | Team Columbia - High Road | +01:26:52 |
| 58 | David Moncoutie (FRA) | Cofidis | +01:28:35 |
| 59 | Charles Wegelius (GBR) | Silence - Lotto | +01:29:37 |
| 60 | Laurens Ten Dam (NED) | Rabobank | +01:34:57 |
| 61 | Gorka Verdugo (ESP) | Euskaltel - Euskadi | +01:35:49 |
| 62 | Juan Manuel Garate (ESP) | Rabobank | +01:37:19 |
| 63 | Carlos Barredo (ESP) | Quick Step | +01:38:30 |
| 64 | Geoffroy Lequatre (FRA) | Agritubel | +01:40:09 |
| 65 | Amaël Moinard (FRA) | Cofidis | +01:42:28 |
| 66 | Igor Anton Hernandez (ESP) | Euskaltel - Euskadi | +01:44:39 |
| 67 | Thomas Voeckler (FRA) | Bbox Bouygues Telecom | +01:47:40 |
| 68 | Nicolas Vogondy (FRA) | Agritubel | +01:51:09 |
| 69 | David Arroyo (ESP) | Caisse d'Épargne | +01:51:52 |
| 70 | Maxime Bouet (FRA) | Agritubel | +01:53:04 |
| 71 | José Ivan Gutierrez (ESP) | Caisse d'Épargne | +01:54:08 |
| 72 | Ruben Perez (ESP) | Euskaltel - Euskadi | +01:57:29 |
| 73 | Joost Posthuma (NED) | Rabobank | +01:58:25 |
| 74 | Juan Horrach (ESP) | Team Katusha | +01:58:52 |
| 75 | Christophe Kern (FRA) | Cofidis | +01:59:20 |
| 76 | Sebastian Lang (GER) | Silence - Lotto | +02:00:52 |
| 77 | David Zabriskie (USA) | Garmin - Slipstream | +02:02:36 |
| 78 | Johannes Frohlinger (GER) | Team Milram | +02:04:53 |
| 79 | Hayden Roulston (NZL) | Cervelo TestTeam | +02:07:58 |
| 80 | Marzio Bruseghin (ITA) | Lampre - N.G.C | +02:08:42 |
| 81 | Jose Luis Arrieta (ESP) | AG2R-La Mondiale | +02:11:29 |
| 82 | Christophe Riblon (FRA) | AG2R-La Mondiale | +02:12:43 |
| 83 | Stijn Devolder (BEL) | Quick Step | +02:13:56 |
| 84 | José Joaquín Rojas (ESP) | Caisse d'Épargne | +02:14:16 |
| 85 | David Millar (GBR) | Garmin - Slipstream | +02:15:04 |
| 86 | Frederik Willems (BEL) | Liquigas | +02:16:11 |
| 87 | Inigo Cuesta (ESP) | Cervelo TestTeam | +02:16:39 |
| 88 | Jérôme Pineau (FRA) | Quick Step | +02:17:36 |
| 89 | Greg van Avermaet (BEL) | Silence - Lotto | +02:20:14 |
| 90 | Thierry Hupond (FRA) | Skil-Shimano | +02:22:58 |
| 91 | Fabian Cancellara (SUI) | Team Saxo Bank | +02:23:55 |
| 92 | Aliaksandr Kuchynski (BLR) | Liquigas | +02:23:58 |
| 93 | Johan van Summeren (BEL) | Silence - Lotto | +02:25:38 |
| 94 | Leonardo Duque (COL) | Cofidis | +02:25:52 |
| 95 | Alessandro Ballan (ITA) | Lampre - N.G.C | +02:26:22 |
| 96 | Stijn Vandenbergh (BEL) | Team Katusha | +02:26:34 |
| 97 | Heinrich Haussler (GER) | Cervelo TestTeam | +02:28:35 |
| 98 | Martijn Maaskant (NED) | Garmin - Slipstream | +02:29:53 |
| 99 | Oscar Freire (ESP) | Rabobank | +02:39:25 |
| 100 | Filippo Pozzato (ITA) | Team Katusha | +02:39:39 |
| 101 | Mickaël Delage (FRA) | Silence - Lotto | +02:42:20 |
| 102 | Juan Antonio Flecha (ESP) | Rabobank | +02:42:45 |
| 103 | Michael Rogers (AUS) | Team Columbia - High Road | +02:42:57 |
| 104 | Sébastien Rosseler (BEL) | Quick Step | +02:43:22 |
| 105 | Bingen Fernandez (ESP) | Cofidis | +02:45:28 |
| Thor Hushovd (NOR) | Cervelo TestTeam | +02:46:00 |
| 107 | Juan José Oroz (ESP) | Euskaltel - Euskadi | +02:46:17 |
| 108 | Jussi Veikkanen (FIN) | Française des Jeux | +02:47:21 |
| 109 | Simon Spilak (SLO) | Lampre - N.G.C | +02:52:24 |
| 110 | Daniele Righi (ITA) | Lampre - N.G.C | +02:52:44 |
| 111 | Keon de Kort (NED) | Skil-Shimano | +02:53:25 |
| 112 | Fumiyuki Beppu (JPN) | Skil-Shimano | +02:55:21 |
| 113 | Simon Geschke (GER) | Skil-Shimano | +02:55:28 |
| 114 | Matteo Tosatto (ITA) | Quick Step | +02:58:28 |
| 115 | Arnaud Coyot (FRA) | Caisse d'Épargne | +02:59:10 |
| 116 | Brian Vandborg (DEN) | Liquigas | +02:59:57 |
| 117 | Alexandre Pichot (FRA) | Bbox Bouygues Telecom | +03:02:01 |
| 118 | Stef Clement (NED) | Rabobank | +03:02:11 |
| 119 | Anthony Geslin (FRA) | Française des Jeux | +03:02:26 |
| 120 | Alessandro Vanotti (ITA) | Liquigas | +03:04:00 |
| 121 | Julian Dean (NZL) | Garmin - Slipstream | +03:04:41 |
| 122 | Nikolay Trusov (RUS) | Team Katusha | +03:05:10 |
| 123 | Staf Scheirlinckx (BEL) | Silence - Lotto | +03:05:11 |
| 124 | Stuart O'Grady (AUS) | Team Saxo Bank | +03:08:39 |
| 125 | Markus Fothen (GER) | Team Milram | +03:12:45 |
| 126 | Gerald Ciolek (GER) | Team Milram | +03:15:12 |
| 127 | Brett Lancaster (AUS) | Cervelo TestTeam | +03:15:33 |
| 128 | William Bonnet (FRA) | Bbox Bouygues Telecom | +03:16:29 |
| 129 | Yukiya Arashiro (JPN) | Bbox Bouygues Telecom | +03:16:44 |
| 130 | Albert Timmer (NED) | Skil-Shimano | +03:16:50 |
| 131 | Mark Cavendish (GBR) | Team Columbia - High Road | +03:21:54 |
| 132 | Mauro Santambrogio (ITA) | Lampre - N.G.C | +03:23:29 |
| 133 | Lloyd Mondory (FRA) | AG2R-La Mondiale | +03:25:39 |
| 134 | Bert Grabsch (GER) | Team Columbia - High Road | +03:27:06 |
| 135 | Daniele Bennati (ITA) | Liquigas | +03:27:14 |
| 136 | Stéphane Auge (FRA) | Cofidis | +03:27:18 |
| 137 | Fabian Wegmann (GER) | Team Milram | +03:29:54 |
| 138 | Gregory Rast (SUI) | Astana | +03:30:07 |
| 139 | Samuel Dumoulin (FRA) | Cofidis | +03:30:23 |
| 140 | Mikhail Ignatiev (RUS) | Team Katusha | +03:32:09 |
| 141 | Danny Pate (USA) | Garmin - Slipstream | +03:32:39 |
| 142 | Benoît Vaugrenard (FRA) | Française des Jeux | +03:34:35 |
| 143 | Said Haddou (FRA) | Bbox Bouygues Telecom | +03:34:55 |
| 144 | Cyril Lemoine (FRA) | Skil-Shimano | +03:36:14 |
| 145 | Marco Bandiera (ITA) | Lampre - N.G.C | +03:39:14 |
| 146 | Marcin Sapa (POL) | Lampre - N.G.C | +03:41:46 |
| 147 | Fabio Sabatini (ITA) | Liquigas | +03:42:11 |
| 148 | Dimitry Muravyev (KAZ) | Astana | +03:43:15 |
| 149 | Mark Renshaw (AUS) | Team Columbia - High Road | +03:46:20 |
| 150 | Bernhard Eisel (AUT) | Team Columbia - High Road | +03:47:43 |
| 151 | Tyler Farrar (USA) | Garmin - Slipstream | +03:48:13 |
| 152 | Niki Terpstra (NED) | Team Milram | +03:48:38 |
| 153 | Steven De Jongh (NED) | Quick Step | +03:49:21 |
| 154 | Jonathan Hivert (FRA) | Skil-Shimano | +03:49:39 |
| 155 | Andreas Klier (GER) | Cervelo TestTeam | +03:54:08 |
| 156 | Yauheni Hutarovich (BLR) | Française des Jeux | +04:16:27 |