Po ukończeniu szkoły podstawowej w Augustowie uczył się w gimnazjum, naukę przerwał mu wybuch wojny. W latach 1941–1944 pracował jako robotnik leśny w tartaku Lipowiec koło Augustowa.
Po powrocie do kraju w 1953 roku został przeniesiony do korpusu oficerów polityczno-wychowawaczych i został wyznaczony na starszego wykładowcę w Katedrze Pedagogiki Akademii Wojskowo-Politycznej im. Feliksa Dzierżyńskiego w Warszawie (od 1957 Wojskowej Akademii Politycznej im. Feliksa Dzierżynskiego). Podczas dalszej służby w WAP był zastępcą szefa Katedry Teorii i Historii Wychowania (1958-1963), zastępcą komendanta Wydziału Pedagogiczno-Politycznego (1963-1965) oraz zastępcą komendanta akademii do spraw naukowych (1965-1969).
W 1969 roku został szefem Zarządu Politycznego Warszawskiego Okręgu Wojskowego, a dwa lata później zastępcą dowódcy WOW do spraw politycznych. Na tym stanowisku pozostawał do 17 listopada 1973, kiedy to został mianowany szefem Zarządu II Propagandy i Agitacji – zastępcą szefa Głównego Zarządu Politycznego WP. W latach 1983–1986 był I zastępcą szefa GZP WP. 4 stycznia 1986 roku na posiedzeniu poszerzonego Kolegium GZP WP z udziałem ministra obrony narodowej, generała armii Floriana Siwickiego przejął od generała broni Józefa Baryły obowiązki szefa Głównego Zarządu Politycznego WP. Na tym stanowisku pozostawał do czasu przeformowania instytucji w Główny Zarząd Wychowawczy WP. Jego pierwszym zastępcą był wiceadmirał Ludwik Dutkowski, a zastępcami generałowie: Tadeusz Kojder, Mieczysław Michalik, Zdzisław Rozbicki, Lesław Wojtasik oraz Albin Żyto.
Od 1971 roku członek Komisji Ideologicznej Komitetu Centralnego PZPR. W latach 1986–1990 członek Komitetu Centralnego PZPR. W latach 80. wchodził również w skład Rady Redakcyjnej organu teoretycznego i politycznego KC PZPRNowe Drogi[2]. Był także przewodniczącym Komisji ds. Oficerów Rezerwy przy Zarządzie Głównym Ligi Obrony Kraju (1983-1986). Od 1979 roku członek Rady Naczelnej, a w latach 1985–1990 wiceprezes Zarządu Głównego ZBoWiD[3]. W latach 1986–1989 był wiceprzewodniczącym Ogólnopolskiego Komitetu Grunwaldzkiego oraz członkiem Prezydium Rady Głównej Przyjaciół Harcerstwa. W dniu 11 listopada 1988 roku wszedł w skład Honorowego Komitetu Obchodów 70 rocznicy Odzyskania Niepodległości przez Polskę, którego przewodnictwo objął I sekretarz KC PZPR gen. armii Wojciech Jaruzelski a 28 listopada w skład Honorowego Komitetu Obchodów 40-lecia Kongresu Zjednoczeniowego PPR – PPS – powstania PZPR, któremu również przewodniczył I sekretarz KC PZPR[4].
Od 27 listopada do 26 grudnia 1989 roku pełnił obowiązki szefa Głównego Zarządu Wychowawczego WP. 26 grudnia odwołany ze stanowiska przez Prezydenta RP, Wojciecha Jaruzelskiego. Trzy dni później, w obecności ministra obrony narodowej, generała armii Floriana Siwickiego przekazał obowiązki szefa GZW WP następcy, wiceadmirałowiPiotrowi Kołodziejczykowi. 11 stycznia 1990 został komendantem Wojskowego Instytutu Historycznego imienia Wandy Wasilewskiej. Obowiązki komendanta instytutu pełnił do 5 lipca 1990 roku, po czym w związku z przekroczeniem 65 roku życia zakończył zawodową służbę wojskową i z dniem 22 lutego 1991 roku przeszedł w stan spoczynku. Pochowany na cmentarzu Powązki Wojskowe w Warszawie (kwatera FII-7-4)[5].
Syn Franciszka, leśniczego i Aleksandry. Z małżeństwa z Hanną (zm. w styczniu 2011) miał dwóch synów: starszy Mirosław (rzecznik prasowy Komendy Głównej Straży Granicznej w latach 1996–2005) i młodszy Jarosław.