Atleta specializzato nelle corse di un giorno, tra i dilettanti fu campione olimpico a Monaco di Baviera 1972.
Passato professionista nel 1973 con la tedesca Ha-Ro, nei primi due anni di carriera ottenne alcuni buoni piazzamenti nelle classiche e tre vittorie in gare minori. Nel 1975 vinse una tappa alla Vuelta a España e il titolo nazionale in linea; il 28 agosto dello stesso anno si aggiudicò anche il titolo mondiale in linea a Yvoir, grazie a un attacco solitario nel finale: prima di lui solo Ercole Baldini era riuscito a vincere sia l'oro olimpico che quello mondiale su strada. Attivo anche nel ciclocross, fu campione nazionale di specialità nel 1974 e 1975.
Nel 1976, trasferitosi alla forte TI-Raleigh diretta da Peter Post, vinse la classifica generale del Tour de Suisse, una frazione al Tour de France e una alla Vuelta a España. Nel 1977 e nel 1978 conquistò altre due frazioni alla Grande Boucle; proprio nel 1977, come anche nel 1980, riuscì a piazzarsi secondo nella classifica finale del Tour de France, preceduto rispettivamente da Bernard Thévenet e Joop Zoetemelk.
Nella seconda parte di carriera si impose anche in numerose classiche: vinse il Giro delle Fiandre e il Giro di Lombardia nel 1981, la Parigi-Roubaix nel 1983 e nel 1985, a 36 anni, anche la Milano-Sanremo con un attacco negli ultimi chilometri. Fu quello il suo ultimo successo in carriera; dopo altre tre stagioni senza vittorie, diede l'addio alle corse professionistiche a fine 1988.
Rimasto nel mondo del ciclismo, dal 1989 al 1996 fu direttore sportivo per i team Stuttgart/Telekom e Motorola.