W latach 80. związany z podziemiem solidarnościowym, Ruchem Wolność i Pokój i Solidarnością Polsko-Czesko-Słowacką. Był posłem na Sejm X kadencji z ramienia Komitetu Obywatelskiego (najmłodszym parlamentarzystą KO). Zasiadał w radzie naczelnej Ruchu Obywatelskiego Akcja Demokratyczna. W pierwszej połowie lat 90. pełnił funkcję redaktora tygodnika „Gazeta Prowincjonalna” i zastępcy dyrektora ds. reklamy i wydawnictw w prywatnej spółce. Dwukrotnie wygrywał wybory do Senatu w województwie bielskim, sprawując mandat w izbie wyższej III kadencji z rekomendacji Unii Demokratycznej i IV kadencji z ramienia Unii Wolności. W trakcie działalności w parlamencie zainicjował m.in. akcję „Ekologia w Konstytucji”. W 2001 kandydował do Sejmu, gdy UW nie osiągnęła progu wyborczego.

Pracował w Wyższej Szkole Bankowości i Finansów w Bielsku-Białej, w której w 2001 objął stanowisko prodziekana ds. studentów. Wykładał również na Uniwersytecie Śląskim oraz Akademii Ignatianum w Krakowie. Objął stanowisko adiunkta na Wydziale Prawa i Nauk Społecznych Wyższej Szkoły Finansów i Prawa w Bielsku-Białej. Od 1994 do 2009 nieprzerwanie zasiadał w radzie miasta Bielska-Białej – w tym jako przewodniczący lokalnego stowarzyszenia Unia dla Bielska-Białej, w 2006 wybrany z ramienia Platformy Obywatelskiej).