Carriera Il suo esordio nel ciclismo avviene all'età di sei anni. Seguendo le orme del fratello Raffaele, anche lui buon dilettante, difende per numerosi anni i colori del Pedale Ossolano, e poi, tra i dilettanti, quelli della U.C. Bergamasca 1902. Gareggia poi da professionista dal 2001 al 2011 (spiccano cinque stagioni consecutive con il team Barloworld), cogliendo cinque successi. Nel 2012 è passato al mountain biking.
Dal 2013, ritiratosi dall'attività, è direttore sportivo alla Androni Giocattoli-Sidermec.
Palmarès 2000 (dilettanti) 2ª tappa Flèche du Sud (Rumelange > Rumelange) Classifica generale Flèche du Sud
2002 (Mapei, tre vittorie) 3ª tappa Bayern Rundfahrt (Bad Wörishofen > Gunzenhausen) 1ª tappa Circuit des Mines (Thionville > Herserange Classifica generale Circuit des Mines
2006 (Barloworld, una vittoria) Classifica generale Corsa della Pace
2008 (Barloworld, una vittoria) Gran Premio Nobili Rubinetterie
Piazzamenti Grandi Giri
Giro d'Italia 2003: 62º 2009: 101º 2010: ritirato (15ª tappa) 2011: 97º
Tour de France 2007: 111º 2008: 88º
Vuelta a España 2003: 107º 2010: 86º
Classiche monumento
Milano-Sanremo 2006: 160º 2008: 140º 2009: 160º
Liegi-Bastogne-Liegi 2003: ritirato 2004: ritirato 2006: 48º 2007: 42º 2008: 102º 2009: ritirato
Giro di Lombardia 2003: ritirato 2004: ritirato 2007: ritirato 2008: ritirato
Altri progetti
Collegamenti esterni