Ha giocato oltre che in Serie A anche nelle serie minori. Ha legato il suo nome soprattutto al Foggia, dove ha militato per sei stagioni (dal 1988 al 1996, con le parentesi di Fiorentina, Modena e Bologna), proprio nel miglior periodo della storia del club pugliese che si meritò l'appellativo di "Foggia dei Miracoli" alla guida del tecnico boemo Zdeněk Zeman.
Dopo aver giocato nello SPAL e nell'Ascoli, chiude la sua carriera da calciatore nell'Avellino nel 2003.
Allenatore
Intraprende subito la carriera di allenatore, prima come collaboratore nell'Ascoli e nella Salernitana, poi alla guida tecnica del Campobello di Mazara e l'anno successivo approda nel Pomigliano in Serie D dove rimane per due stagioni, ottenendo due quarti posti in classifica, tra i migliori risultati in assoluto nella storia del club[1]. Proprio l'esperienza di Pomigliano verrà da lui stesso definita "determinante per la mia carriera"[2]. Nella città dell'Alfa si fa conoscere e apprezzare entrando subito nel cuore dei tifosi, anche grazie a un curioso record difficilmente battibile: il suo Pomigliano realizza un gol dopo solo sei secondi della prima partita da lui condotta in panchina, una rete tra le più veloci in assoluto della storia del calcio italiano.
Nella stagione 2009-2010 viene chiamato ad allenare il Manfredonia in Seconda Divisione[3], la squadra composta a larghi tratti da giovani, trova la salvezza sul campo. Nel luglio 2010 diventa allenatore della squadra Primavera della Juventus, ruolo che lascia a fine stagione dopo la fine del contratto; pesano i risultati non brillanti ottenuti dalla sua formazione bianconera.[4]
Il 24 agosto 2011 subentra a Salvatore Vullo alla guida dell'Avellino[5] a pochi giorni dall'inizio del campionato di Lega Pro Prima Divisione, per poi a stagione terminata, rimettere l'incarico nelle mani della società biancoverde e fare posto a Massimo Rastelli. Nella stagione successiva diviene l'allenatore del Sorrento fino al 22 gennaio 2013 quando viene esonerato.
Il 10 dicembre 2012 inizia a frequentare a Coverciano il corso di abilitazione per il master di allenatori professionisti Prima Categoria-UEFA Pro.[6] Il 1º luglio 2014 diviene il nuovo allenatore del Savoia, neopromossa in Lega Pro unica venendo esonerato alla decima giornata alla luce degli scarsi risultati conseguiti[7].
Torna in panchina il 18 aprile 2016, quando viene ingaggiato dall'Arezzo per guidare la squadra nelle ultime tre giornate di campionato al posto dell'esonerato Ezio Capuano[8]. Il 14 febbraio 2017 subentra sulla panchina del Monopoli al posto di Diego Zanin. Il 5 aprile 2017 viene esonerato dopo la sconfitta per 6-2 con il Cosenza.[9]
Il 4 dicembre 2018 ritorna all'Avellino, che milita in Serie D, in sostituzione dell'esonerato Archimede Graziani, vincendo il campionato con 11 vittorie consecutive e lo scudetto Serie D con 15 vittorie consecutive. Ma, nonostante ciò a fine stagione non viene confermato.[10] Il 25 ottobre 2019 torna in panchina. Viene infatti ingaggiato dalla Sicula Leonzio nel girone C della Serie C, al posto dell'esonerato Vito Grieco. Il 13 gennaio 2020 viene sollevato dall'incarico, con il team al penultimo posto.
Il 22 settembre 2020 viene nominato nuovo tecnico del Bisceglie, che era appena stato ripescato in Serie C dopo la retrocessione per illecito sportivo dell' Az Picerno. Il 1º febbraio 2021, dopo la sconfitta con la Cavese viene sollevato dall'incarico.[11] Viene richiamato sulla panchina pugliese il 6 aprile 2021, in sostituzione di Papagni. A fine stagione, dopo la retrocessione in serie D, non viene confermato.
Il 27 febbraio 2023 viene nominato vice di Zdeněk Zeman sulla panchina del Pescara. Il 22 febbraio 2024 assume la guida della prima squadra a seguito delle dimissioni per motivi di salute del tecnico boemo[12]. L'esordio sulla panchina biancoazzurra arriva il successivo 24 febbraio, quando il Delfino batte con il minimo scarto la Lucchese. Il 16 marzo seguente si dimette, all'indomani della sconfitta per 5-1 contro il Rimini, avendo messo insieme quattro punti in cinque partite (una vittoria, un pareggio e tre sconfitte) e con la squadra settima in classifica.[13]