II sekretarz Polskiej Misji Wojskowej w Niemczech (1952–1957), naczelnik Wydziału Niemieckiego (1957–1960), wicedyrektor Departamentu Krajów Europy Środkowej, następnie Departamentu Krajów Socjalistycznych (1960–1962), radca Ambasady PRL w Belgradzie (1962–1968, w tym od 1966 do 1977 jako chargé d’affaires), dyrektor Departamentu Studiów i Programowania (1968–1971), w latach 1971–1980 podsekretarz stanu w MSZ, od 24 sierpnia 1980 do 21 lipca 1982 minister spraw zagranicznych.
Należał do Związku Młodzieży Wiejskiej RP „Wici”, Związku Akademickiego Młodzieży Polskiej i Związku Młodzieży Polskiej (1949–1956). W latach 1948–1949 był członkiem Stronnictwa Ludowego, od 1949 do 1952 Zjednoczonego Stronnictwa Ludowego. Jego kariera polityczna w latach 1955–1990 związana z Polską Zjednoczoną Partią Robotniczą. W latach 1971–1980 zastępca członka, a od 1980 członek Komitetu Centralnego PZPR. Od lipca 1981 do lipca 1989 członek Biura Politycznego i sekretarz KC PZPR. Od listopada 1982 do lipca 1986 jako sekretarz KC PZPR odpowiadał m.in. za oświatęZbigniew Osiński, Nauczanie historii w szkołach podstawowych w Polsce w latach 1944–1989: uwarunkowania organizacyjne oraz ideologiczno-polityczne, Lublin 2010, s. 90.. W kierownictwie PZPR odpowiadał także za politykę międzynarodową.