Cresciuto nelle giovanili della Lazio, iniziò la sua carriera calcistica nel 1982 con la maglia dell'Urbe Tevere, con cui realizzò 7 reti in 14 presenze in una stagione. Nel 1983, allora diciassettenne, venne acquistato dal Cesena, militante in Serie B, con cui non collezionò alcuna presenza. A fine stagione fu prestato al Ravenna, scendendo così di ben due categorie; con i romagnoli trovò 13 reti in 30 presenze, contribuendo alla vittoria del Campionato Interregionale. Tornato in estate a Cesena, fu ridato in prestito a Ravenna anche la stagione successiva, in cui realizzò 4 gol in 28 presenze
Vis Pesaro, Arezzo, Genoa e prestiti
Nel 1986 fu ceduto alla Vis Pesaro, con cui fece una buona stagione realizzando 14 gol in 30 presenze. La stagione successiva ritornò in B, ma stavolta con la maglia dell'Arezzo. I suoi 8 gol però non bastarono alla squadra di Angelillo per salvarsi, e i toscani retrocedettero in Serie C. Nell'estate del 1988 passò al Genoa, sempre in Serie B, e fu fondamentale. Infatti con i liguri realizzò 7 reti contribuendo alla promozione in Serie A (fu anche il miglior marcatore del Genoa in quella stagione). Nel mercato di novembre 1989 però fu prestato al Brescia, e da quell'anno iniziarono una serie di prestiti che durarono fino al 1993.
Trovò spazio in Serie A nel 1989 quando fu acquistato dalla Fiorentina, in cui rimase fino al 1991. Con questa maglia si aggiudicò il soprannome "foca monaca". Infatti il 17 aprile 1990, nella semifinale di ritorno di Coppa UEFA contro il Werder Brema, palleggiò di testa partendo dalla propria area di rigore fino alla linea di centrocampo, dove fu fermato fallosamente da un avversario[3]. Nel 1991 passò in prestito all'Udinese, ritrovando Franco Scoglio, suo mister ai tempi del Genoa, con cui raggiunse il quarto posto in Serie B che valse un'altra promozione. La stagione successiva fu prestato invece alla SPAL, sempre in Serie B, ma le sue 10 realizzazioni non bastarono a evitare la retrocessione degli estensi in C1.
Ritorno al Genoa, Brescia e ultimi anni
Nel 1993, dopo 4 anni, torno al Genoa. Nella stagione 1993-1994 realizzò 4 reti e la stagione successiva fu ceduto, sempre in prestito, al Brescia, in cui trovò tuttavia poco spazio (11 presenze totali). Nel 1995 tornò al Genoa, ma stavolta ci resto più tempo. Infatti con la maglia del grifone giocò 4 stagioni, collezionando 33 reti in 126 presenze. Nel 1999 passò all'Atalanta, con cui restò fino al mercato invernale del 2001, quando venne ceduto alla Ternana. Passò poi al Como, al Savona, alla Carrarese, al Cuneo e infine al Sestri Levante. Nel 2006 si ritira dal calcio professionistico.
A partire dalla stagione 2005/06 prende parte al campionato amatoriale AICS a Genova con la formazione del "Sud Ovest" ricca di ex stelle (tra le quali Vincenzo Torrente, Fausto Salsano, Roberto Murgita) fino alla stagione 2017/18 timbrando con sorprendente regolarità (67 presenze condite da 112 goal)
Allenatore
Nel 2007 diventa allenatore delle giovanili del Figenpa[4], società dilettantistica genovese. Nell'estate 2012 torna al Savona da allenatore degli Allievi Nazionali[5][6], con cui nella stessa stagione conquista le finali nazionali. Nel luglio 2014 gli viene affidata la panchina dei calabresi del Comprensorio Montalto, in Serie D, venendo esonerato a ottobre 2014[7]. Nella stagione 2016-2017 allena la Berretti del Livorno che si laurea campione d'Italia.
L'8 settembre 2017 assume la guida del Pomigliano, in Serie D, venendo esonerato il 28 dicembre dopo aver raccolto 20 punti in 16 gare[8].
Il 26 febbraio 2018 torna al Pomigliano[9], ma dopo un mese subisce dai campani il secondo esonero dopo quello dei 3 mesi prima[10].
L'esperienza cinese si chiude nel giugno 2021 e il 7 luglio successivo viene ufficializzato come nuovo allenatore dell'Arzachena, squadra sarda militante in Serie D[11]. Nel torneo 2021-22 chiude la stagione regolare al 4º posto, qualificandosi per la semifinale playoff (persa contro i futuri vincitori della Torres). Confermato per la stagione successiva, conduce i biancoverdi ancora al 4º posto finale e di conseguenza alla semifinale playoff contro la Casertana, gara che termina in parità sul 3-3 ma che premia i campani, posizionatisi al 3º posto in graduatoria alla fine della regular season. L'8 giugno successivo, all'indomani della comunicazione della dirigenza di aver messo in vendita la società, rassegna le dimissioni.
Il 30 ottobre 2023 viene annunciato come nuovo allenatore della Nocerina, squadra di Serie D, dove subentra all'esonerato Gianluca Esposito.[12]. Conduce la squadra al 2º posto in classifica e di conseguenza ai playoff, dove si ferma ancora in semifinale (persa 0-1 con il Cassino). Nonostante ciò, i molossi non gli rinnovano la fiducia per la stagione successiva.
Il 24 ottobre 2024 diventa ufficialmente il nuovo allenatore della Cairese, compagine ligure militante nel girone A di Serie D, in sostituzione di Riccardo Boschetto.
2010 (Genova, 19 marzo) – Viene insegnito dall'Ordine Nazionale Cavalieri dello Sport, con il patrocinio del CSEN, al titolo di Cavaliere dello Sport.[14]