Esordisce tra i professionisti nella stagione 1957-1958 con la maglia della , club di Serie B, in una partita di Coppa Italia; l'anno seguente viene definitivamente aggregato alla prima squadra, nel frattempo promossa in Serie A: nel corso della stagione 1958-1959 gioca infatti 3 partite nel campionato di massima serie, facendo il suo esordio in campionato il 21 settembre 1958, alla prima giornata, giocando la partita pareggiata per 0-0 in casa contro la . A fine stagione viene ceduto alla , club di Serie C, con cui nella stagione 1959-1960 gioca tutte e 34 le partite di campionato; trascorre in terza divisione anche la stagione 1960-1961, nella quale segue l'allenatore Guido Testolina al , dove realizza 3 reti in 28 presenze. Nella stagione 1961-1962 dopo ulteriori 4 presenze nel campionato di Serie C con i romagnoli viene ceduto nella sessione invernale di calciomercato al , club militante nel campionato di Serie B: con i lariani, dal novembre del 1961 alla fine della stagione totalizza 21 presenze e 4 reti. Nell'estate del 1962 cambia nuovamente squadra, trasferendosi in Serie C al : rimarrà con i romagnoli per 5 stagioni consecutive, tutte in terza divisione, per un totale di 114 presenze ed una rete in partite di campionato. In particolare, gioca stabilmente da titolare nelle sue prime 3 stagioni con i bianconeri, mentre nella stagione 1965-1966 e nella stagione 1966-1967 (le sue ultime 2 nel club) disputa rispettivamente 17 e 9 partite. A fine stagione passa all', in Serie D: nelle stagioni 1967-1968 e 1968-1969 gioca tutte e 68 le partite di campionato in programma, vincendo tra l'altro la Serie D 1968-1969. Nella stagione 1969-1970 torna quindi a giocare in Serie C, campionato in cui gioca ancora una volta tutte le partite (38) disputate dalla sua squadra; nella stagione 1970-1971 gioca ulteriori 36 partite, mentre nella stagione 1971-1972, al termine della quale l'Imolese retrocede in Serie D, gioca 16 partite, le sue ultime da professionista.