Da giovane corse per le società ciclistiche veronesi Polisportiva Bruno Gaiga[1] e G.S. Bencini,[2] collezionando una cinquantina di successi. Era un brillante cronoman, e nella specialità dei 100 km a squadre per dilettanti ottenne la vittoria nei campionati del mondo del 1964 (con Andreoli, Dalla Bona e Manza), la medaglia d'argento olimpica nello stesso anno (con la stessa squadra), di nuovo la vittoria mondiale nel 1965 (con Dalla Bona, Denti e Soldi), e infine il terzo posto nel 1966 (con Benfatto, Dalla Bona e Denti).
Nel settembre del 1966 passò al professionismo con la squadra Salamini-Luxor TV (capitano Vittorio Adorni), e ottenne subito discreti piazzamenti. L'anno successivo vinse la sua prima corsa, una tappa del Giro di Sardegna e partecipò anche al suo primo Giro d'Italia, concluso al 32º posto con un secondo posto di tappa.
Nel 1968 venne ingaggiato dalla Salvarani (con capitano Felice Gimondi) e partecipò alla Vuelta a España, ottenendo una vittoria di tappa. Alla Salvarani rimase per cinque stagioni e, pur non vincendo molto, ogni anno riuscì a conquistare una vittoria. Vinse una tappa anche al Tour de France del 1971 mentre, pur partecipando a cinque Giri d'Italia, non riuscì mai ad imporsi in una frazione. Solo nel 1971, con la Salvarani, vinse il cronoprologo a squadre.
Per tre volte fu selezionato nella squadra Nazionale per partecipare ai campionati mondiali professionistici di inseguimento su pista: la prima volta nel 1968, fu quarto; nel 1971 dopo aver vinto il campionato italiano della specialità, al campionato mondiale venne eliminato nei quarti di finale; l'anno successivo si ripeté come vincitore nel campionato italiano, e in quello mondiale si piazzò di nuovo al quarto posto.
Chiuse la carriera nel 1974, sempre nella squadra di Felice Gimondi, che nelle ultime due stagioni era diventata la Bianchi-Campagnolo.