Brał udział w wydarzeniach poznańskiego czerwca w 1956. Od 1976 współpracował z Ruchem Obrony Praw Człowieka i Obywatela, zajmował się kolportażem wydawnictw niezależnych. Od 1978 działał w warszawskim Klubie Inteligencji Katolickiej. W 1980 wstąpił do „Solidarności”, był m.in. członkiem prezydium zarządu regionu związku i delegatem na I Krajowy Zjazd Delegatów NSZZ „Solidarność” w Gdańsku. W okresie od grudnia 1981 do marca 1982 aresztowany, był sądzony przez Sąd Pomorskiego Okręgu Wojskowego w Bydgoszczy, który go uniewinnił. Został jednak internowany na okres od 5 maja do 2 grudnia 1982. Po zwolnieniu wszedł w skład kierownictwa podziemnych struktur NSZZ „S” kolejarzy.

W 1989 został wiceministrem, następnie od 6 lipca 1990 do 11 lipca 1992 sprawował urząd ministra transportu i gospodarki morskiej w rządach Tadeusza Mazowieckiego, Jana Krzysztofa Bieleckiego i Jana Olszewskiego. W wyborach parlamentarnych w 1991 bez powodzenia kandydował do Senatu z ramienia Kongresu Liberalno-Demokratycznego w województwie szczecińskim. Był członkiem ministerialnego zespołu negocjacyjnego prowadzącego rozmowy o wycofaniu wojsk radzieckich i rosyjskich z Polski, które zakończyły się podpisaniem umowy międzypaństwowej 22 maja 1992. W 1993 był zatrudniony w charakterze st. radcy w Dyrekcji Generalnej PKP w Warszawie.