Jego rekord Polski na 1000 m ze startu zatrzymanego z Meksyku poprawił dopiero Marek Skórski w 1986.

W mistrzostwach Polski na torze i na szosie w różnych konkurencjach wywalczył 27 tytułów mistrzowskich.

Kariera za granicą Trzykrotnie brał udział w Igrzyskach Olimpijskich. W debiucie w 1968 w Meksyku zdobył brązowy medal w wyścigu na 1000 m ze startu zatrzymanego wynikiem 1.04.63, który był jednocześnie rekordem Polski. Był to pierwszy medal olimpijski w kolarstwie torowym dla Polski po II wojnie światowej. W drużynie w wyścigu na 4000 m na dochodzenie odpadł w ćwierćfinale. Kolejne starty olimpijskie nie były dla niego równie udane. W 1972 zajął piąte miejsce na 1000 m ze startu zatrzymanego i czwarte – w drużynowym wyścigu na 4000 m na dochodzenie. W 1976 był czwarty na 1000 m ze startu zatrzymanego.

Dziewięciokrotnie startował w mistrzostwach świata. Debiut w 1967 przyniósł mu piąte miejsce w wyścigu drużynowym na 4000 m na dochodzenie. W tandemach (z Jerzym Skoczkiem) odpadł w eliminacjach. W 1968 był czwarty na 1000 m ze startu zatrzymanego. W 1969 zdobył swój pierwszy medal MŚ – srebro w wyścigu na 1000 m ze startu zatrzymanego. W wyścigu sprinterskim zajął 9-10. miejsce. Po niezbyt udanym występie w 1970 (12.