Študiral je kemijo v Zagrebu, nato pravo v Ljubljani. Tu je postal član Pokrajinskega komiteja (PK) Skoja. Leta 1939 se je pred aretacijo umaknil v Pariz.
Kot prostovoljec se je med leti 1937 – 1939 bojeval v španski državljanski vojni in se bojeval na frontah v Aragonu, Estremaduri, na Ebru in v Kataloniji. Bil je politični komisar v mednarodni brigadi. Med leti 1939 do 1941 je bil zaprt v taboriščih v Franciji in na delu v Nemčiji.
Julija 1941 se je pridružil Narodnoosvobodilnemu boju, kjer je postal politični komisar II. grupe odredov, nato po smrti Franca Rozmana – Staneta komandant Glavnega štaba Narodnoosvobodilne vojske (NOV) in Partizanskih odredov Slovenije (POS).
Med leti 1946 – 1949 je študiral v Moskvi in diplomiral na VVA K. J. Vorošilova. Pozneje je bil načelnik VVA v Beogradu, načelnik uprave GŠ JLA. O narodnoosvobodilni vojski je med leti 1952 – 1954 predaval v Švici, ZDA, Veliki Britaniji, Grčiji in na Norveškem. Od leta 1955 je delal v diplomatski službi. Bil je veleposlanik v Etiopiji, ZRN in Indiji ter pomočnik državnega sekretarja za zunanje zadeve. Dosegel je čin generalpodpolkovnika.
Bil je urednik tednika Mlada pota. V času, ko je bil v Franciji, je urejal Glas izseljencev. Po vojni je urejal list Vojno delo in bil odgovorni urednik Vojne enciklopedije. Pisal je o temeljih jugoslovanske vojaške teorije in znanosti. Idejo partizanske strategije in taktike je obravnaval kot pomembno sestavino varnosti držav in pogoj za stalen mir.
Pokopan je v Grobnici narodnih herojev v Ljubljani.
Po njem se je imenovala Osnovna šola v Litiji in ulica v Litiji.
Odlikovanja
– red narodnega heroja
– red partizanske zvezde I. stopnje
– red zaslug za ljudstvo I. stopnje
– red bratstva in enotnosti I. stopnje
– red partizanske zvezde II. stopnje
– red za hrabrost (2x)
– red jugoslovanske zastave II. stopnje
– red križa Grunwalda I. stopnje (Poljska)
– partizanska spomenica 1941
– norveški red sv. Olafa
Osebnosti – veliki slovenski biografski leksikon. Mladinska knjiga, Ljubljana, 2008.
Litijski zbornik NOB I, Skupščina Občine Litija, Ljubljana, 1969.