Od 1965 należał do Stronnictwa Demokratycznego. Sprawował wysokie i odpowiedzialne funkcje partyjne, m.in. przewodniczącego Miejskiego Komitetu SD w Krakowie (1968–1975). W latach 1969–1976 zasiadał w Centralnej Komisji Rewizyjnej SD, następnie w prezydium Centralnego Komitetu (1976–1981). Od 1975 pozostawał prezesem Krakowskiego Komitetu SD. W latach 1985–1991 ponownie zasiadał w CK, a w okresie 1985–1989 również w jego prezydium.
W 1973 objął funkcję wiceprzewodniczącego Rady Narodowej miasta Krakowa z ramienia SD, którą sprawował do 1984. W latach 1976–1989 wykonywał mandat posła na Sejm PRL VII, VIII i IX kadencji. Był członkiem Komisji Spraw Zagranicznych, Nauki i Postępu Technicznego (w latach 1975–1981 wiceprzewodniczący, od 1981 do 1982 – przewodniczący) oraz Edukacji Narodowej i Młodzieży. Zasiadał w zarządzie Polskiej Grupy Unii Międzyparlamentarnej (1976–1989), był także jej wiceprzewodniczącym (1980–1982;