Debutta in Serie C2 con il Giulianova, dove rimane per sei stagioni. In seguito passa alla Sambenedettese in Serie C1 dove disputa tre campionati. Dopo una breve parentesi con l'Avellino, esordisce in Serie B con il Pescara, collezionando 110 presenze e segnando 26 reti nella serie cadetta.
Nella prima parte della stagione 1998-1999 è ancora in Serie B con la maglia del Cosenza, dove totalizza altre 9 presenze, ed a gennaio 1999 passa al Crotone in Serie C1. Dopo un'altra breve parentesi con il Messina in Serie C2 nella prima parte della stagione 1999-2000, torna in Serie C1 con la Fidelis Andria dove rimane per due stagioni.
Infine disputa un campionato di Serie C2 con il Tricase ed uno di Serie D con il Matera.
Allenatore
Dopo aver allenato la Santegidiese, a partire dalla stagione 2008-2009 ricopre il ruolo di allenatore in seconda del Giulianova, vivendo subito l'ultima promozione dei giuliesi in terza serie, nell'annata 2008-2009[1][2].
Dalla stagione 2013-2014 è collaboratore tecnico di Federico Giampaolo prima, e di Massimo Oddo poi, alla Primavera del Pescara[3][4]. Il 12 febbraio 2014, si dimette insieme a Massimo Oddo dopo la sconfitta per 5-3 con il Torino. Il 14 gennaio 2023 torna nella sua città natale come vice allenatore in Eccellenza abruzzese.