Difensore piuttosto duttile, ha giocato prevalentemente da terzino destro e talvolta è stato impiegato da centrale in una difesa a quattro o con tre marcatori.[3]
Carriera
Club
Dopo aver debuttato con l'Ardor Busto Arsizio, cresce calcisticamente nelle giovanili del Milan, con la cui formazione Primavera, di cui è stato capitano, ha vinto il Torneo di Viareggio nel 1999 e nel 2001.[4]
Nella stagione 2001-2002 si trasferisce al Cesena, in Serie C1, dove colleziona 25 presenze ed un gol. Nella stagione successiva passa alla Triestina, in Serie B, con cui realizza un gol in 27 presenze.
Nel 2003-2004 viene acquistato dal Palermo. Nella prima stagione è titolare della squadra rosanera, nelle cui file colleziona 36 presenze, contribuendo alla promozione in Serie A. Nelle altre stagioni gioca meno, riuscendo a fare il suo esordio in Coppa UEFA il 20 ottobre 2005, in occasione di Maccabi Petah Tiqwa-Palermo (1-2).
Nel gennaio 2006 il Palermo lo cede in compartecipazione al Cagliari. Dopo due stagioni concluse con due salvezze con la compagine sarda e durante le quali è utilizzato in 38 partite, nell'estate 2007 il club ne acquisisce l'intero cartellino. Nel Cagliari è ancora titolare nella stagione successiva, giocando 27 partite. Perso il posto da titolare nella stagione 2008-2009, il giocatore viene successivamente ceduto.
Nel gennaio del 2009 viene acquistato dalla Sampdoria[5][6] a titolo definitivo e messo sotto contratto per sei mesi, con un'opzione per le due stagioni successive. Esordisce con la maglia blucerchiata il 1º febbraio 2009 nella partita Chievo-Sampdoria (1-1).
Svincolatosi dal club ligure, il 17 settembre 2009 firma un contratto annuale con il L.R. Vicenza,[7] con cui gioca 26 incontri di campionato. Alla fine di questa stagione resta ancora svincolato. A fine ottobre del 2010 si allena in prova con l'Atalanta,[8][9] che l'8 novembre lo ingaggia con un contratto fino al 2011 con opzione per la stagione successiva.[10]
Scende in campo per la prima volta con la maglia nerazzurra il 5 febbraio 2011, nella partita casalinga contro il Pescara vinta per 1-0.[11] Chiude la stagione con 9 presenze in campionato, ottenendo il primo posto e la promozione in Serie A; alla fine della stessa rimane svincolato.[12] In seguito il giocatore sottoscrive un nuovo contratto, della durata di un anno, con la società orobica,[13] disputando 13 partite in Serie A e rimanendo svincolato a fine stagione. Il 9 luglio, tuttavia, firma ancora un contratto annuale con il club di Bergamo.[14] In tutto con l'Atalanta ha giocato 32 partite.
Il 31 gennaio 2014, ultimo giorno di calciomercato, firma con il Trapani, con cui conclude il campionato di Serie B 2013-2014[15]; nelle due stagioni seguenti passa dapprima alla Pro Vercelli, poi alla Pro Patria.
Nell'estate 2016 scende in Serie D, firmando un contratto con il neopromosso Varese[16], della cui rosa si rivela elemento determinante e titolare pressoché fisso. Riconfermato anche per la stagione successiva, nel 2017 assume la fascia di capitano del club lombardo, lasciata vacante dalla partenza di Francesco Luoni[17].
Terminato il biennio a Varese, la stagione 2018-2019 lo vede tornare a Busto Arsizio, sua città natale, firmando per il Busto 81, squadra militante nel girone A del campionato di Eccellenza Lombarda, di cui ne diviene anche il capitano.