Na przełomie lat 70./80. w PRL był działaczem opozycji demokratycznej. W latach 1977–1980 współpracownik KSS KOR. W 1980 wstąpił do NSZZ Solidarność. Był członkiem zarządu Regionu Mazowsze i delegatem na I Krajowy Zjazd Delegatów tego związku. Po wprowadzeniu stanu wojennego z 13 grudnia 1981 był internowany w Białołęce, zwolniony 12 czerwca 1982. We wrześniu 1982 zwolniony z pracy. Od 1982 do 1990 adiunkt w Instytucie Badawczym Dróg i Mostów w Warszawie.

Dwukrotnie pełnił stanowisko Podsekretarza Stanu w Ministerstwie Transportu i Gospodarki Morskiej: od 13 sierpnia 1990 do 18 listopada 1993 oraz w rządzie Jerzego Buzka od 12 stycznia 1998 do 26 października 2001. W wyborach samorządowych w 2002 bez powodzenia ubiegał się o mandat radnego sejmiku mazowieckiego z listy Prawa i Sprawiedliwości. W 2002 zasiadł w Radzie Nadzorczej Zakładów Naprawczych Taboru Kolejowego i Miejskiego w Warszawie sp. z o.o., a od 2003 do 2005 był członkiem rady nadzorczej Metra Warszawskiego sp. z o.o. Na początku 2004 został mianowany przez prezydenta Warszawy Lecha Kaczyńskiego pełnomocnikiem ds. budowy Mostu Północnego w Warszawie.