Od 1941 działacz RChOB, następnie jeden z organizatorów i działaczy PPR na Lubelszczyźnie. Oficer Gwardii Ludowej i Armii Ludowej, komisarz poczty, sekretarz okręgu i szef wydziału w Obwodzie AL Lublin. Komendant ochrony Sztabu Głównego AL i dowódca ochrony osobistej gen. Michała Roli-Żymierskiego.

Od 1944 w Wojsku Polskim, komendant ochrony SG, od 1946 dowódca pułku piechoty. Na początku lat 50. zwolniony z wojska i poddany represjom, po październiku 1956 powrócił do służby. W 1957 awansowany na generała brygady, a w 1970 na generała dywizji.

Dowódca 1. Dywizji Zmechanizowanej (1956–1959), zastępca dowódcy Śląskiego Okręgu Wojskowego ds. liniowych (1959–1963), zastępca komendanta Wojskowej Akademii Technicznej ds. liniowych (1963–1968), szef polskiej misji w Międzynarodowej Komisji Kontroli i Nadzoru w Korei (1968–1969), szef Wojsk Obrony Wewnętrznej (1970–1974), a od 1974 roku zastępca Głównego Inspektora Obrony Terytorialnej ds. organizacji paramilitarnych. Od 1984 w stanie spoczynku. Oficjalnie pożegnany przez ministra obrony narodowej, gen. broni Floriana Siwickiego w związku z zakończeniem zawodowej służby wojskowej.