Cresciuto nella Salernitana squadra della sua città, viene ceduto successivamente in prestito alla Cavese, dove partecipa alla promozione in Serie C2. Ritornato a Salerno, contribuisce alla vittoria del campionato di Serie B, diventando titolare l'anno successivo in Serie A, che si conclude con la retrocessione della formazione campana.
Diventa poi capitano della squadra granata[6] e rimane fino alla stagione 2002-2003, che si conclude con l'ultimo posto in Serie B e la conseguente retrocessione in Serie C.
Nell'estate del 2003 passa al Messina, riuscendo ad ottenere immediatamente la promozione in Serie A, e l'anno seguente colleziona 5 presenze in massima serie a causa di un infortunio che lo costringe a saltare quasi tutta la stagione.[7]
Nel corso del campionato 2005-2006, non riuscendo a trovare spazio in squadra, si trasferisce in Serie C1 al Genoa, con cui ottiene la quarta promozione in carriera.
Nel 2007-2008 ritorna alla Salernitana, dove gli viene nuovamente assegnata la fascia di capitano.[8] La stagione si conclude positivamente, con il ritorno in Serie B dei granata.
Nella 22ª giornata del campionato di Serie B 2008-2009 festeggia la partita numero 200 con la maglia della Salernitana.
Il 2 novembre 2010 viene acquistato dalla Paganese dove ha terminato la sua carriera da calciatore.
Nazionale
Conta 8 convocazioni nella Under-21, tra il 1998 ed il 2000, agli ordini del c.t. Marco Tardelli.
Controversie e assoluzione
Nell'ambito dell'inchiesta sul filone Bari-bis relativo al calcioscommesse e ad alcune partite truccate che lo vedono coinvolto (Bari-Treviso 0-1 del 2007-2008 e Salernitana-Bari 3-2 del 2008-2009) è stato deferito dapprima dalla Procura Federale della FIGC per illecito sportivo, e poi, il 16 luglio 2013, viene condannato in primo grado dalla Commissione Disciplinare Nazionale della FIGC a 3 anni e 6 mesi di squalifica, confermati, poi, anche in appello.[9][10] Il 6 giugno 2014, il TNAS gli riduce la squalifica ad un anno e due mesi derubricandogli il reato in "omessa denuncia".[11] Il 30 maggio 2016 al processo penale di Bari viene assolto «per non aver commesso il fatto».[12]
Nel 2018-19 torna alla Paganese in Serie C come allenatore in prima. Viene esonerato dopo l'11ª giornata ,dopo aver ottenuto solo due pareggi.[15]
Nella stagione 2019-2020 accetta la proposta della Juve Stabia di allenare la squadra Primavera.
Nel luglio del 2020, accetta l'offerta del Sorrento Calcio e diventa l'allenatore della squadra rossonera per la stagione 2020-2021. Esperienza che si chiude l'8 marzo 2021, quando i costieri comunicano il suo esonero.