Od 1958 do 1965 był zastępcą dyrektora Międzynarodowego Instytutu Pokoju przy Światowej Radzie Pokoju w Wiedniu, a w latach 1965–1968 sekretarzem Ogólnopolskiego Komitetu Pokoju w Warszawie.

W latach 1968–1972 był pracownikiem Wydziału Zagranicznego Komitetu Centralnego PZPR (do 1971 jako starszy instruktor, a następnie jako zastępca kierownika). W 1971 zasiadł w Centralnej Komisji Kontroli Partyjnej. Od 1975 do 1976 był zastępcą członka, a w latach 1976–1981 członkiem KC PZPR. Od lutego 1980 do kwietnia 1981 był zastępcą członka Biura Politycznego KC PZPR, a od sierpnia 1980 do kwietnia 1981 sekretarzem KC.

W 1972 był podsekretarzem stanu w Ministerstwie Spraw Zagranicznych. W latach 1972–1976 był ambasadorem PRL we Francji, a w latach 1981–1984 we Włoszech i na Malcie.

Od marca 1976 do grudnia 1976 był ministrem administracji, gospodarki terenowej i ochrony środowiska, a następnie do sierpnia 1980 ministrem spraw zagranicznych w rządach Piotra Jaroszewicza i Edwarda Babiucha.