Iniziò la carriera da allievo nelle Marche per poi trasferirsi come dilettante nella Siof di Novi Ligure; in seguito passò alla Bianchi, dove divenne un fedele gregario di Fausto Coppi che seguirà anche nella Carpano-Coppi, nella Coppi-Ghigi e nella Tricofilina-Coppi. Concluse prematuramente la sua carriera nel 1960 alla Gazzola a seguito di un grave incidente avvenuto durante una corsa in pista che rischiò di ucciderlo.
Data la sua condizione di gregario ebbe poche opportunità di vittoria. Riuscì comunque a conquistare il Gran Premio Belmonte Piceno 1953, tre tappe del Gran Premio Ciclomotoristico, il Gran Premio d'Europa a Imola nel 1958 e la Coppa Agostoni nel 1959. Ebbe anche la soddisfazione di arrivare primo in una cronosquadre nell'11ª tappa del Giro d'Italia del 1953.
Ottenne anche diversi piazzamenti ai campionati del mondo: nel 1953 a Lugano arrivò quarto a 7'34" da Coppi, piazzamento che ripeté a Solingen nel 1954, mentre nel 1959 a Zandvoort giunse secondo, battuto in volata dal francese André Darrigade.