Po ukończeniu czterech klas szkoły powszechnej uczył się w I Gimnazjum św. Anny (Nowodworskiego), gdzie w 1915 r. otrzymał świadectwo dojrzałości. W X 1915 r. wstąpił do Armii Austriackiej i od stycznia do marca 1916 r. był w Oficerskiej Szkole Rezerwy w Opavie i następnie przydzielony do kadry 57 pp. na froncie rosyjskim. Od października 1916 r. na froncie włoskim nad rzeką Piawą, awansowany do stopnia kadeta-aspiranta. 1 listopada dostał się do niewoli włoskiej, w której przebywał 2 lata. Do Armii Polskiej gen. J. Hallera we Francji wstąpił 5 XI 1918 r., przydzielony do 4 pp.
W wojsku II RP
W kwietniu 1919 r. wyjechał do Polski i od maja był na froncie ukraińskim, a od 15 VI 1919 do 10 I 1920 na granicy śląskiej i na Pomorzu (styczeń – maj 1920). Brał udział na froncie wschodnim w walkach z bolszewikami od maja 1920 r., później na granicy wschodniej jako dowódca kompanii 48 pp. Strzelców Kresowych 11 DP (do II 1921). Stopień podporucznika otrzymał ze starszeństwem 5 XI 1918, awansowany na porucznika 20 III 1920 (ze starszeństwem 1 VI 1919). 16 VI 1924 r. został przydzielony na oficera sztabu do 11 DP, a 20 III 1926 r. przeniesiony na kurs aplikacyjny przy 3 Pułku Lotniczym w Poznaniu, w związku z przejściem do lotnictwa. Następnie przydzielony do 11 Pułku Lotniczego w Lidzie i wyznaczony na oficera ewidencyjno-personalnego, następnie wyznaczony dowódcą 24 eskadry w 2 Pułku Lotniczym w Krakowie. Awansowany na kapitana ze starszeństwem 1 I 1930 r. Później pełnił funkcję oficera nadzoru technicznego przy parku lotniczym 2 Pułku, adiutanta 2 Pułku Lotniczego, dowódcy eskadry treningowej, dowódcy 21 eskadry liniowej oraz 26 eskadry towarzyszącej. W 1931 r. uległ ciężkiemu wypadkowi lotniczemu w Katowicach. Awansowany do stopnia majora ze starszeństwem 18 III 1937. Od 15 X 1937 do 1 listopada 1938 r. był w Wyższej Szkole Lotniczej (II kurs), następnie mianowany dowódcą 1 dyonu liniowego w 2 Pułku Lotniczym.
We Wrześniu ‘39, we Francji i w Wielkiej Brytanii
W kampanii wrześniowej 1939 r. dowodził 2 dyonem bombowym Brygady Bombowej (lotniska: Sadków, Wsola koło Radomia, Marianów). Brał udział m.in. w wyprawie bombowej na kolumnę niemiecką w okolicach Brzezinki (na wschód od Łodzi). Granicę polsko-rumuńską przekroczył 17 IX 1939 r. Z Tulcei udał się do portu Bałczik nad Morzem Czarnym, a następnie morzem przybył do Bejrutu i 30 X wyokrętowany w Marsylii, skąd przeniesiony do Salon, a potem do bazy lotniczej Lyon i Rennes. Tam był dowódcą grupy personelu latającego i technicznego. 3 V 1940 r. awansowany do stopnia podpułkownika.
9 lutego 1943 roku był (jako drugi pilot) w składzie załogi Wellingtona, która stoczyła 58-minutową walkę z 4 niemieckimi samolotami „Junkers 88”; został wówczas ranny. Była to jedna z najsławniejszych walk lotniczych.
Po upadku Francji przybył do Marsylii, a następnie po załadowaniu na statek przypłynął do Casablanki, skąd udał się do Wielkiej Brytanii (Glasgow). Od 22 VIII do 22 XII 1940 r. był dowódcą 304 Dywizjonu Bombowego Ziemi Śląskiej im. ks. Józefa Poniatowskiego, stacjonującego w Bramcote koło Coventry oraz Syerston, który przedtem zorganizował. Przeniesiony na brytyjską stację Millom, pełnił funkcję pilota. Później w Inspektoracie Sił Powietrznych jako oficer łącznikowy do Sztabu Brytyjskiej Południowej Grupy Szkoleniowej. Ponownie przydzielony do 304 dyonu bombowego latał jako pilot, m.in. 9 II 1943 r. w składzie załogi Wellingtona (jako drugi pilot), która stoczyła 58-minutową walkę z 4 niemieckimi samolotami „Junkers 88”, ranny. Była to jedna z najsławniejszych walk lotniczych.
Cichociemny
Po zgłoszeniu się do służby w kraju przeszedł przeszkolenie konspiracyjne ze specjalnością w lotnictwie i 5 XI 1943 r. został zaprzysiężony w Oddziale VI Sztabu NW. Awansowany na pułkownika 15 VI 1944 r. ze starsz. 28 IV 1944. Na podstawie rozkazu Naczelnego Wodza z 1 IX 1944 r., otrzymał tytuł oficera dyplomowanego. W nocy z 27/28 IV 1944 r. (ekipa 57) wykonał skok na placówkę „Koza”, położoną koło Lublina. Po aklimatyzacji w Warszawie otrzymał przydział do Wydziału Lotnictwa Oddziału III KG AK jako szef służb lotniczych. Przed powstaniem przeniesiony do Okręgu Warszawa na stanowisko dowódcy „Bazy Lotniczej Okęcie”. Wobec nieudanego natarcia na lotnisko 1 VIII 1944 r. i niemożności przedostania się do Warszawy zamieszkał w Szczęśliwicach. W drugiej połowie października przybył do Krakowa i nawiązał kontakt z płk Romanem Rudkowskim „Rudym”, mianowany zastępcą szefa Wydziału Lotnictwa KG AK.
Za rządów sowieckich
Po 15 I 1944 wyjechał do Miechowa i powrócił następnie do Krakowa, gdzie 2 II 1945 został aresztowany przez NKWD przy ul. Zyblikiewicza (u p. Hamerlaka). Przeprowadzony do więzienia na Montelupich, później wywieziony do Częstochowy, następnie do Bytomia i Łodzi (tam więziony w celi z gestapowcami) oraz do Poznania i Rawicza. Zwolniony 5 X 1945 r. dzięki interwencji przewodniczącego komisji, byłego podoficera z 2 Pułku Lotniczego, badającej „zasadność” uwięzienia. Po zwolnieniu wyjechał do Miechowa. 2 V 1946 przez „zieloną granicę” przedostał się do Niemiec i przybył 29 maja do Wielkiej Brytanii. Skierowany do Bazy Polskich Sił Powietrznych na lotnisko w Dunholme Lodge, później w Lincoln. Po demobilizacji ukończył kurs hotelarstwa i gastronomii.
10 VI 1948 powrócił z żoną Zdzisławą i synem Januszem transportem morskim do Gdyni. Od 1949 r. pracował w Centralnym Zarządzie Przemysłu Ceramiki Budowlanej Przemysłu Węglowego w Katowicach na stanowisku inspektora bezpieczeństwa i higieny pracy, później był referentem planowania w Dziale Głównego Mechanika. Ponownie więziony przez UB za przynależność do AK od 9 XI 1950 do 9 IV 1951. Miał trudności ze znalezieniem pracy, szykanowany przez władze komunistyczne. Ostatecznie otrzymał zatrudnienie w Przedsiębiorstwie Materiałów Budowlanych Przemysłu Węglowego w Bytomiu na stanowisku st. technika w Dziale Głównego Mechanika, następnie był inspektor planowania.
Zmarł 2 października 1984 r. w Bytomiu. Odznaczony był m.in. Orderem Virtuti Militari 5 kl., 3-krotnie Krzyżem Walecznych, Złotym Krzyżem Zasługi z Mieczami oraz Srebrnym Krzyżem Zasługi.