Figlio d'arte, comincia a correre nelle categorie giovanili, correndo tra i giovanissimi e gli esordienti. Nel 1999 con la divisa del G.S. Montemarciano coglie tredici successi e diversi piazzamenti importanti, mettendosi in evidenza a livello nazionale. L'anno successivo debutta tra gli Juniores: in due anni colleziona dieci vittorie e guadagna la maglia azzurra per la prova di categoria ai Mondiali 2001 a Lisbona. Nel 2002 esordisce negli Under-23 con il Casprini Cycling Team, e l'anno dopo è tra le file della Grassi-Colnago; ottiene due successi nella stagione 2002 e due nel 2003,[1] mostrando doti di passista-scalatore, forte soprattutto in progressione,[1] e risultando così uno dei migliori prospetti della categoria.[2]
Passato professionista nel 2004, dopo soli due anni da Dilettante, con la Domina Vacanze di Vincenzo Santoni, rimane anche nel 2005 tra le file del team, rinominato Naturino-Sapore di Mare. Nel 2004 corre la classicaLiegi-Bastogne-Liegi. Il 6 agosto 2005 durante il Giro del Lazio prova un'azione a quattro chilometri dal traguardo ma cade e viene ripreso.[3] Tre giorni dopo è al via del Gran Premio Fred Mengoni, svoltosi nella città di Castelfidardo, al termine del quale viene battuto in volata da Luca Mazzanti.[4]
2006-2014: Liquigas, Acqua & Sapone e Farnese-Vini
Nel 2006 passa alla formazione ProTourLiquigas, rimanendovi sino al 2007 ma vincendo solo una cronometro a squadre, nello stesso 2007 alla Settimana Ciclistica Lombarda. Nel settembre 2006 corre la Vuelta a España, partecipando così al suo primo grande giro: conclude la prova in centoventitresima posizione.
Nel 2008 si trasferisce all'Acqua & Sapone, squadra nella quale rimane fino al 2010. Con la maglia del team, diretto da Palmiro Masciarelli, partecipa a due edizioni del Giro d'Italia (2009 e 2010), a due edizioni del Giro di Lombardia, arrivando decimo nel 2008, e a una edizione della Milano-Sanremo, nel 2010, concludendo la corsa al ventiquattresimo posto. Il biennio 2008-2009 lo vede conquistare diversi piazzamenti e la prima vittoria da professionista, nell'ultima tappa della Settimana Ciclistica Lombarda 2008.
L'8 settembre 2010 viene messo sotto contratto dalla Farnese Vini-Neri Sottoli per la stagione 2011.[5] Nel 2011, in maglia Farnese Vini, partecipa al suo terzo Giro d'Italia: nella frazione da Piombino a Orvieto, quinta tappa di quella "Corsa rosa", cade e rimedia trenta punti di sutura al ginocchio sinistro e venti al ginocchio destro e agli arti superiori;[6] chiude anzitempo la stagione. Rientrato alle corse, nel 2012 corre ancora il Giro d'Italia e si piazza quinto alla Coppa Sabatini. Conclude l'attività su strada a fine 2014.