Dopo gli esordi in Serie D con il Pietrasanta, passa al Varese con cui debutta in Serie B nel 1978, giocando dapprima come secondo portiere e diventando titolare nella stagione 1980-1981.
In seguito passa alla Triestina con cui vince il campionato di Serie C1 1982-1983 e gioca 7 gare all'inizio del successivo campionato di Serie B, prima di essere ceduto al Prato in Serie C1.
Negli anni seguenti si alterna tra Serie C1 e Serie C2 con le maglie di Mestre, Messina (con cui vince il campionato di Serie C1 1985-1986), Siracusa, e torna a Messina dove disputa 24 gare nella Serie B 1987-1988.
Termina la carriera da professionista giocando ancora per qualche anno in Serie C1 con Catania, Salernitana e Catanzaro. Conta complessivamente 55 presenze in Serie B con Varese, Triestina e Messina.