Syn Stanisława i Katarzyny. W lutym 1940 został deportowany z rodziną na Syberię, skąd powrócił do kraju w 1946. Służbę wojskową rozpoczął we wrześniu 1950, jako podchorąży Oficerskiej Szkoły Piechoty nr 1 we Wrocławiu. W 1952 został promowany na stopień podporucznika, po czym skierowany na dowódcę plutonu, a następnie zastępcę dowódcy kompanii w 4 Pułku Piechoty w Kielcach (służył w nim do października 1954). W latach 1954–1957 studiował w Akademii Sztabu Generalnego. Po studiach został szefem sztabu 33 Pułku Zmechanizowanego w Nysie. W latach 1959–1966 pełnił służbę w Sztabie Śląskiego Okręgu Wojskowego, gdzie był m.in. oficerem Oddziału Operacyjnego. W 1966 został szefem sztabu-zastępcą dowódcy 10 Pułku Czołgów Średnich w Opolu. Dowodził tym pułkiem, uczestnicząc w interwencji państw Układu Warszawskiego w Czechosłowacji. W 1969 został szefem sztabu-zastępcą dowódcy 11 Drezdeńskiej Dywizji Pancernej w Żaganiu. W latach 1971–1973 był słuchaczem Wojskowej Akademii Sztabu Generalnego Sił Zbrojnych ZSRR. W 1973 objął dowództwo 11 Drezdeńskiej Dywizji Pancernej. Na tym stanowisku w 1974 awansował na generała brygady. W 1976 został szefem sztabu-zastępcą dowódcy Pomorskiego Okręgu Wojskowego w Bydgoszczy. W 1978 został mianowany dowódcą tego okręgu wojskowego, a na wypadek wojny dowódcą 1 Armii. W 1979 awansowany na generała dywizji. W 1983 został zastępcą szefa Sztabu Generalnego Wojska Polskiego ds. operacyjnych. W latach 1983–1990 szef Sztabu Generalnego i jednocześnie wiceminister Obrony Narodowej. 27 września 1984 został mianowany generałem broni. 24 września 1990 odwołany ze stanowisk wiceministra obrony narodowej oraz szefa Sztabu Generalnego WP, następnie przebywał w dyspozycji MON. Służbę wojskową zakończył 3 października 1991, przechodząc w stan spoczynku w wieku 58 lat.