Centrocampista che abbinava quantità e qualità, è cresciuto nel settore giovanile del Crotone e ha esordito con la formazione rossoblù in Interregionale, per poi vestire le maglie di Frosinone (C2), Francavilla (C2 e C1), Cagliari (C1, serie B e A), Brescia (serie B e serie A), Lazio (serie A), Atalanta (serie A), Cosenza (serie B), Brescia (serie B e serie A) e Cremapergo (C2). Complessivamente ha totalizzato 516 presenze in campionato con 7 reti realizzate.
La sua prima esperienza da allenatore risale alle stagione 1999 - 2000 con il Cremapergo (C2) e poi, per ben sette stagioni, è alla guida della formazione "Primavera" del Brescia. Successivamente siede sulle panchine di Arezzo (C1), Darfo Boario (serie D), Seregno (serie D), Trento (da dicembre 2012 a maggio 2013), AlzanoCene (serie D), Piacenza (serie D), Lecco (serie D, con cui sfiora la vittoria del campionato), Lumezzane (Lega Pro) e, infine, Pergolettese, guidata nella seconda parte della scorsa stagione.