Cresce nel Prato, che nel 1981 lo cede alla Fiorentina dove non scenderà mai in campo in massima serie.
Nel 1983 passa al Varese dove gioca la sua prima stagione in Serie B, poi milita in Serie C con il Rimini e il Mantova, prima di tornare a calcare i campi della serie cadetta con Catanzaro ed Empoli.
In seguito dopo quasi due anni da titolare in Serie C1 di nuovo con il Catanzaro, nell'estate 1992 viene acquistato dalla Cremonese. In Lombardia conquista da titolare la promozione dalla Serie B alla Serie A, poi rimane in grigiorosso per tre stagioni consecutive in massima serie, e rimane anche in Serie B dopo la retrocessione del 1996.
Chiude la carriera nel 1998 con la maglia del Pisa, in Serie C2.
In carriera ha collezionato complessivamente 75 presenze in Serie A andando a segno 1 una occasione, nella sconfitta esterna della Cremonese contro la Lazio del 30 gennaio 1994,[1] e 132 presenze e 2 reti in Serie B.