Ex difensore originario di Massa, esordisce in serie B nella stagione 1991-1992 con la Lucchese allora guidata da Marcello Lippi. Dopo una lunga carriera tra Serie A e Serie B, le cui esperienze più importanti sono con Napoli e Genoa, finisce gli ultimi anni da calciatore tra la Serie C e la Challenge League svizzera.
Inizia la carriera di allenatore nel 2011-2012 con gli allievi nazionali del Bologna, passando successivamente alla guida della squadra Primavera. Nel 2014 allena il Sestri Levante in Serie D, chiudendo il girone al secondo posto e vincendo i play-off nazionali.
Nella stagione 2016-2017 guida l’Imolese in Serie D, ottenendo un secondo posto in classifica. Torna nel calcio giovanile, allenando l’Under 17 della Roma vincendo campionato e supercoppa di categoria. Successivamente allena la Primavera della Juventus.
Nella stagione 2024 guida il Trento, chiudendo al decimo posto e qualificandosi per i play-off. A luglio 2024 viene ingaggiato dal Lecco in Serie C, per poi essere sostituito lasciando la squadra undicesima in classifica.