함경북도 회령의 빈농가정에서 태어났다. 부모를 따라서 만주로 이주하였고, 정규교육을 받지 못한 채 어린 시절을 보냈다.
1933년에 길림성(吉林省)연길현(延吉縣)에서 항일유격대에 입대하여 항일시절의 대부분을 김일성(金日成)의 지휘 아래 활동하였다. 1937년 6월김일성이 이끄는 동북항일연군 제1로군 제6사가 수행한 보천보전투에 경위련(警衛連) 연장으로 참가하였다.
1939년 11월에는 오중흡(吳仲洽)의 전사로 공석이 된 항일연군 제1로군 제2방면군 7단의 단장이 되었다. 항일유격대의 대일항전이 고전을 면치 못하던 1940년 6월, 제2방면군의 조직개편으로 제2방면군 제1중대 부장이 되었다.
그 후 1942년 8월에 창설된 동북항일연군 교도려(敎導旅)에서는 소련군 정찰부대에 파견되어 만주와 조선지역으로의 정찰·소조 활동을 계속하였다.
1945년 8월 9일 소련의 대일전 참전 당시 전투에 참가하지 못한 김일성(金日成)·최용건(崔庸健)·김책(金策) 등이 이끄는 항일유격대 본대와는 달리 소련군과 함께 대일전을 치르면서 함경북도 웅기에 상륙하였다.
광복 후 북한에서 군 지휘관으로 활동하면서 김일성 절대권력체제의 확립에 복무하였다. 1946년 10월 철도여단 부여단장을 맡았으며, 1949년 12월에는 내무성 산하 38선 경비 제1여단장에 발탁되었다.
조선인민군 제8사단장으로 한국전쟁에 참전하였다. 1956년 4월에 정부 호위국장이 되었으며, 1961년 내무성 부상(副相) 겸 호위총국장으로 격상되었다.
항일유격대 출신이 대거 당 중앙위원회에 진출하는 1961년의 조선노동당 제4차 대회에서 중앙위원에 선출되었다. 1963년에 민족보위성 부상을 거쳐 1968년 12월에 일어난 군 수뇌부 숙청사건을 계기로 당 군사부장으로 기용되었다.
이어서 1969년 12월 노농적위대 사령관이 되었고, 1972년 12월에는 중앙인민위원회 산하 국방위원회 부위원장이 되었다. 북한 권력의 핵심기구인 조선노동당의 정치위원회에 진출한 것은 1977년부터였고, 그 해 10월 정위원이 되었다. 1984년 4월 6일 병사하였다.