Professionista dal 1976 al 1989, vinse la medaglia di bronzo ai campionati del mondo 1978.
Carriera Tra i dilettanti partecipò ai Giochi olimpici 1972 a Monaco di Baviera e ottenne alcune vittorie, tra cui quella nel Grand Prix Tell in Svizzera nel 1975. Passato al professionismo con la Furzi-Vibor nel maggio 1976, a 25 anni compiuti, nei primi anni di carriera si mise in evidenza perlopiù con piazzamenti in prove a cronometro (secondo di tappa nella cronometro di Arcore al Giro d'Italia 1976, terzo al Trofeo Baracchi 1976 e al Grand Prix des Nations 1977).
Nel 1978 concluse terzo ai campionati del mondo del Nürburgring, anticipato dalla coppia formata da Gerrie Knetemann e Francesco Moser. Nel 1980 vinse la cronometro di Pisa al Giro d'Italia, e concluse ottavo (uno dei soli 15 atleti a portare a termine la corsa) nel duro campionato del mondo a Sallanches; l'anno dopo ottenne il quarto posto generale nella Vuelta a España vinta dal suo capitano alla Inoxpran Giovanni Battaglin.
Nelle stagioni seguenti fu capitano per piccole squadre italiane, ottenendo però pochi risultati. Nel 1986 vinse il Trofeo Matteotti a Pescara e vinse una tappa al Giro di Danimarca, ancora al Trofeo Matteotti concluse secondo nel 1988; fu anche secondo nel campionato nazionale danese del 1987. Si ritirò dall'attività professionistica nel 1989, a 39 anni.
Dopo il ritiro non abbandonò il ciclismo, che continuò a frequentare come direttore sportivo: dal 2002 al 2003 fu anche nello staff tecnico del Team CSC diretto da Bjarne Riis.
Palmarès 1973 (dilettanti) Gran Premio Ezio Del Rosso
1975 (dilettanti) 7ª tappa Grand Prix Tell (cronometro) Classifica generale Grand Prix Tell
1976 (dilettanti) Bologna-Raticosa
1980 (Inoxpran, una vittoria) 5ª tappa Giro d'Italia (Pontedera > Pisa, cronometro)
1986 (Murella-Fanini, due vittorie) Trofeo Matteotti 4ª tappa Post Danmark Rundt
1987 (Pepsi Cola-Alba Cucine, una vittoria) 2ª prova Gran Premio Sanson
Piazzamenti Grandi Giri
Giro d'Italia 1976: 37º 1977: 88º 1979: ritirato (9ª tappa) 1980: 33º 1981: 17º 1982: 32º
Tour de France 1979: ritirato (10ª tappa)
Vuelta a España 1981: 4º
Classiche monumento
Milano-Sanremo 1977: 65º 1978: 137º 1979: 95º 1980: 116º
Parigi-Roubaix 1978: 38º
Liegi-Bastogne-Liegi 1978: 40º
Giro di Lombardia 1986: 30º
Competizioni mondiali
Campionati del mondo Yvoir 1975 - In linea Dilettanti: 20º Ostuni 1976 - In linea: 17º San Cristóbal 1977 - In linea: 27º Nürburgring 1978 - In linea: 3º Valkenburg 1979 - In linea: 39º Sallanches 1980 - In linea: 8º Praga 1981 - In linea: ritirato Goodwood 1982 - In linea: 13º Altenrhein 1983 - In linea: 34º Barcellona 1984 - In linea: ritirato Giavera del Montello 1985 - In linea: 23º Colorado Springs 1986 - In linea: 38º Villach 1987 - In linea: 39º Ronse 1988 - In linea: ritirato
Giochi olimpici Monaco 1972 - In linea: 20º Monaco 1972 - Cronometro a squadre: ?
Collegamenti esterni