Oče Alojz je bil železničar, doma iz Hrastnika, mati Zofija se je rodila v družini Obersnel. Osnovno šolo je končal v Litiji, srednjo šolo pa je obiskoval v Ljubljani, Celju in Novem mestu. Leta 1931 je maturiral v Kočevju. Med leti 1931 in 1934 je obiskoval Pomorsko vojaško akademijo v Dubrovniku in nato služil kot aktivni oficir vojne mornarice.
Do okupacije je živel v Novem mestu. Že maja 1941 se je vključil v Osvobodilno fronto (OF) in bil od 1. septembra dalje v mornariški skupini OF Jadran. Marca 1942 so ga aretirali in odpeljali v internacijo (Gonars, Chiesanuova). 1. avgusta 1943 je vstopil v NOV (Cankarjeva brigada). Kmalu nato je odšel v vojaško šolo glavnega štaba NOV in POS kot inštruktor. Od 20. septembra 1944 do 31. marca 1945 je bil načelnik štaba mornariške skupine pri IX. korpusu. Pred koncem vojne in po njej je deloval v vojni mornarici (Split, Zadar).
30. aprila 1946 je na lastno željo stopil v rezervo s činom majorja. Najprej se je zaposlil v Ljubljani, nato pa je bil od 20. septembra 1947 do 15. oktobra 1961 ravnatelj Srednje pomorske šole. Med leti 1961 – 1973 je bil ravnatelj in redni profesor na Višji pomorski šoli v Piranu.
Kot organizator slovenskega pomorskega šolstva, ima posebne zasluge, saj je organiziral ribiško šolo in sodeloval pri gradnji novih prostorov za srednjo in višjo pomorsko šolo v Piranu. Bil je aktiven javni delavec, zlasti v občini Piran.