Urodził się 9 maja 1894 r. w Lesku. Syn Szymona, urzędnika, i Antoniny z Nyżykowskich.
W latach 1904–1912 uczęszczał do gimnazjów w Kołomyi, Samborze oraz Czerniowcach, gdzie uzyskał maturę. Następnie podjął studia prawnicze w Wiedniu.
Od 1913 r. należał do Związku Strzeleckiego w Samborze.
W czasie I wojny światowej 6 sierpnia 1914 r. z oddziałem samborskim Związku Strzeleckiego przybył do Krakowa, gdzie wstąpił do oddziału J. Piłsudskiego. Do 30 września służył w 2 kompanii III baonu. Chory, przebywał w szpitalu. Od 1 listopada 1914 r. do 14 marca 1915 r. dowodził plutonem w baonie uzupełniającym LP kpt. Andrzeja Galicy. 4 listopada 1914 r. otrzymał stopień chor. piech. Od 14 marca 1915 r. był dowódcą plutonu 3 pp LP. Ranny 23 maja pod Mamajowcami, w lipcu przebywał w Domu Uzdrowieńców LP w Kamieńsku. Następnie powrócił do 3 pp LP. Od 1 sierpnia był dowódcą kompanii. 15 grudnia 1915 r. awansował na ppor. piech. Kontuzjowany podczas bitwy pod Kościuchnówka (6 lipca 1916 r.).
Po kryzysie przysięgowym w Legionach od września 1917 r. w Polskim Korpusie Posiłkowym. 1 października awansował na por. piech. Należał do rady oficerskiej pułku. Podczas przejścia II Brygady przez front pod Rarańczą (15/16 lutego 1918) dowodził komp. szturmową 3 pp LP, stanowiącą straż tylną brygady. Dostał się wówczas do niewoli austriackiej. Uwięziony w Huszt, a później w Marmaros-Sziget. Był oskarżonym w procesie legionistów w Marmaros-Sziget (9 czerwca-30 września), jednak w sierpniu zbiegł.
Przedostał się na Ukrainę, gdzie w rejonie Taraszcza-Biała Cerkiew organizował POW.
Przez Mołdawię i Słowację przedostał się do kraju i wstąpił do Wojska Polskiego. Od 15 marca 1919 do 31 maja 1920 r. był wykładowcą i dowódcą kompanii oraz baonu w Szkole Podchorążych Piechoty. Następnie do 19 sierpnia dowodził baonem 101 pp rez w walkach przeciwko bolszewikom, po czym aż do 11 kwietnia 1923 r. baonem 13 pp.
Zweryfikowany jako kpt. piech. z 1 czerwca 1919. 30 kwietnia 1923 r. przeniesiony do rezerwy. Już 15 listopada 1924 r. powrócił do służby czynnej. Początkowo w 80 pp, następnie do 31 lipca 1928 r. dowodził komp. 49 pp. Przejściowo (1 sierpnia-31 grudnia 1928) zajmował stanowisko dowódcy komp. w Szkole Podoficerów Zawodowych w Grudziądzu. Następnie stał na czele baonu 55 pp (do 14 marca 1932). 1 stycznia 1930 r. awansował na mjr. piech. Do 30 maja 1934 r. dowodził baonem 1 psp. 1 stycznia 1934 r. otrzymał stopień ppłk. piech. Wiosną tego roku objął funkcję zastępcy dowódcy 41 pp. Funkcję tę sprawował do 30 czerwca 1935 r. Od 1 lipca 1935 r. komendant PKU Warszawa-Miasto III.
Na tym stanowisku uczestniczył w kampanii 1939 r. Ewakuowany 9 września w kierunku wschodnim, brał udział w walkach z Niemcami w rejonie Tomaszowa Lubelskiego, gdzie dostał się do niewoli. Przebywał m.in. w oflagu II C w Woldenbergu. Uwolniony przez Armię Czerwoną 30 stycznia 1945 r.
Powrócił do Warszawy i 14 marca podjął służbę w LWP. Zajmował stanowisko instruktora, a potem szefa wydziału IV w Departamencie Poboru i Uzupełnień MON. 31 października 1945 r. awansował na płk. piech. Od 19 kwietnia 1946 r. szef tego dep 31 sierpnia 1948 r. przeszedł w stan spoczynku.
Mieszkał w Warszawie, gdzie zmarł 17 września 1965 r.
Odznaczony Krzyżem Niepodległości, orderem Polonia Restituta 4 i 5 kl., czterokrotnie Krzyżem Walecznych oraz złotym i srebrnym Krzyżem Zasługi.
Żonaty (od 1920) z Natalią z Kaszubskich miał z nią synów Zbigniewa (ur. 1921) redaktora, Wiesława (ur. 1924), inżyniera, Czesława (ur. 1926), technika mechanika, oraz córkę Bożenę (ur. 1927), lekarza.
CAW, akta personalne 3168, Krzyża Niepodległości z 12 05 1931; W.K. Cygan, Oficerowie Legionów Polskich 1914–1917. Słownik biograficzny t. 2, Warszawa 2006; A. Holiczenko, Żołnierze tajnego frontu. Lista imienna KN3 POW-Wschód, 1914–1921, Olsztyn 2012; Lista starszeństwa oficerów Legionów Polskich, Warszawa 1917; Lista strat Legionu Polskiego. Od 1 maja do 1 lipca 1915, Piotrków 1915; „Monitor Polski” nr 111/1931; Rocznik oficerski 1923, 1924, 1928, 1932; R. Rybka, K. Stepan, Rocznik oficerski 1939, Kraków 2006; informacje syna Zbigniewa.