| | | Tour de l'Avenir (2.5) |
| 2 | | Klassement |
| 11-09 | 1 | 2 | Stage 10Le Grand-Bornand - Le Grand-Bornand (141.0km) | 141.0km |
| 09-09 | 9 | | Stage 8Gérardmer - Morteau (199.0km) | 199.0km |
| 08-09 | | 1 | Stage 7Metz - Rambervilliers (146.0km) | 146.0km |
| 07-09 | 6 | 1 | Stage 6Yutz - Metz (142.0km) | 142.0km |
| 02-09 | 7 | | Stage 1Fort-Mahon-Plage - Fort-Mahon-Plage (12.0km) | 12.0km |
| 18-08 | 33 | | Olympic Games Athene TT (JO) | 48.0km |
| 14-08 | DNF | | Olympic Games Athens (OS) | 224.0km |
| | | Rothaus Regio-Tour (2.3) |
| 10 | | Klassement |
| 08-08 | | 10 | Stage 5Herbolzheim - Vogtsburg im Kaiserstuhl (177.0km) | 177.0km |
| 04-08 | 10 | | Stage 1Heitersheim - Wehr (181.0km) | 181.0km |
| 25-06 | 4 | | National Road Championships - Sweden (CN) | 190.0km |
| 23-06 | 1 | | National Road Championships - Sweden TT (CN) | 50.0km |
| | | Critérium du Dauphiné Libéré (2.HC) |
| 17 | | Klassement |
| 13-06 | | 17 | Stage 7Grenoble - Grenoble (200.0km) | 200.0km |
| 12-06 | 6 | | Stage 6Gap - Grenoble (144.0km) | 144.0km |
| 11-06 | 15 | | Stage 5Bollène - Sisteron (149.0km) | 149.0km |
| 08-06 | 17 | | Stage 2Bron - Saint-Étienne (181.0km) | 181.0km |
| 06-06 | 18 | | PrologueMegève - Megève (5.0km) | 5.0km |
| | | Tour du Languedoc-Rousillon (2.1) |
| 19-05 | DNF | | Stage 1Maury - Port-Vendres (167.0km) | 167.0km |
| 02-05 | 9 | | Trophée des Grimpeurs (1.3) | 133.0km |
| 25-04 | 117 | | Liège-Bastogne-Liège (CDM) | 258.0km |
| 13-04 | 2 | | Paris-Camembert Lepetit (1.2) | |
| | | Circuit Cycliste Sarthe (2.3) |
| 1 | | Klassement |
| 09-04 | 1 | 1 | Stage 4Évron - Le Mans (181.0km) | 181.0km |
| 29-02 | 60 | | Kuurne-Brussel-Kuurne (1.2) | 193.0km |
| | | Criterium des Espoirs (2.5) |
| 22-02 | 3 | | Stage 2Saint Jean de Luz - Urrugne (73.0km) | 73.0km |
| 22-02 | | 3 | Stage 3Saint Jean de Luz - Saint Jean de Luz (73.0km) | 73.0km |