호는 노은(芦隱), 별명은 호장군(虎將軍). 경기도 출신. 김영선(金永先)의 아들이다.
대한제국 시위대부교(侍衛隊副校)·육군연성학교(陸軍硏成學校)의 조교로 있었다. 1907년 군대가 해산되자 강원도 철원으로 가서 해산된 군인들을 규합하여 의병운동을 일으켜 철원과 양주를 근거지로 일본군과 네 차례나 접전하여 큰 전과를 올렸다. 그뒤 노령(露領)으로부터 무기를 구입하려고 노력하다가 일본경찰에 체포되어 옥고를 치렀다.
일제가 한반도를 식민지화하자 만주로 망명하여 독립운동에 투신하였다. 1919년 8월 군정부의 중심인물로 활약하다가 그해 12월 북로군정서(北路軍政署)가 조직되자 사단장으로 활동하였다. 또한 왕청현(汪淸縣)의 사관연성소(士官鍊成所) 교관으로 청년교육에도 힘썼다.
1920년 청산리전투에서는 보병대대장으로 활약하여 대첩을 거두는 데 크게 기여하였다. 같은 해에 밀산(密山)에서 대한독립군단이 편성되자 총사령관이 되었다. 자유시참변(自由市慘變) 이후 망명군을 재편성하는 한편, 독립사상의 함양에 진력하였다.
1923년 연길현(延吉縣)에서 이범석(李範奭) 등과 고려혁명군을 조직하여 총사령관으로서 영농과 군사훈련을 강화하여 일제와의 임전태세를 갖추었다. 1929년 동포의 교육을 위해 노력했고 1931년 공산당원에게 피살되었다.
1963년 건국훈장 독립장이 추서되었다.