Dopo aver iniziato a giocare nella squadra locale di Vimodrone, la Vimodronese, compie la trafila delle giovanili dell'Inter, squadra con cui esordisce in Serie A il 5 dicembre 1999, segnando un gol contro l'Udinese nella vittoria per 3-0.
In seguito gioca in Serie B con le maglie di Crotone, AlbinoLeffe, Spezia e Pescara, per un totale di 74 presenze e 7 reti nella serie cadetta.
Nel giugno 2009 ottiene la promozione in Serie B con il Crotone.
Nella stagione 2009-2010 gioca nel Monza in Lega Pro Prima Divisione. Il 14 settembre 2011 il Monza annuncia la risoluzione del contratto del giocatore.
Nel 1º febbraio 2012 approda all'Isola Liri, che milita in Seconda Divisione. Dopo aver segnato 3 gol in 12 partite di campionato, rimane svincolato, approdando nel mese di ottobre ai bergamaschi del MapelloBonate, militanti nel girone B di Serie D. Esordisce il 21 ottobre 2012 nella vittoria per 3-1 in casa del Darfo Boario. Il 2 dicembre successivo segna il suo primo gol con la maglia della squadra bergamasca, nella vittoria per 2-0 contro il Caravaggio. Chiude la stagione con 9 gol in 25 presenze, venendo riconfermato anche per la stagione 2013-2014, al termine della quale si svincola dalla società bergamasca.
Allenatore
Nel luglio 2020 viene annunciato come nuovo allenatore della formazione Under-15 della Pro Sesto.[4] Dopo una sola stagione, nel luglio 2021 passa all'Inter per guidare la formazione Under-15.[5]