Terzino destro cresciuto nel Milan (prelevato dalla Milanese), con cui debutta in Serie A a 19 anni, in SPAL-Milan (2-4).
Dai rossoneri viene ceduto all'Alessandria e l'anno successivo il Genoa, entrambe in Serie B, per poi passare all'Atalanta, con la quale torna in serie A, categoria mantenuta per tre stagioni.
Il quarto campionato retrocede con i bergamaschi in Serie B, categoria mantenuta con il passaggio alla Reggina in uno scambio con Bruno Divina,[2] con cui disputa sei campionati chiudendovi anche la carriera.
In carriera ha totalizzato complessivamente 96 presenze in Serie A, con una rete all'attivo in occasione della sconfitta esterna dell'Atalanta contro la Roma del 16 aprile 1967[3] e 200 presenze circa ed una rete in Serie B.