본관은 충주(忠州). 자는 두칠(斗七), 호는 정계(正溪). 평안남도 대동 출신. 김두연(金斗淵)의 아들이다.
1916년 평양 숭실중학교(崇實中學校)를 졸업하고 이듬해에 평양 숭실전문학교에 입학하였다. 1918년 동교에서 애국 연설을 하다가 일제의 강압으로 정학을 당하였다.
1919년 3·1운동 때 만세 시위로 붙잡혀 6개월간 옥고를 치른 후, 만주로 건너가 독립단(獨立團)에 가입하였고, 수차에 걸쳐 평안남도의 대동·중화·강서·진남포 등지를 내왕하면서 군자금을 모금하였다.
1920년 다시 평양에 들어와 3·1운동 1주년을 기념하기 위해 최봉민(崔鳳敏)·박성식(朴聖植) 등과 함께 격문을 지어 시내에 유포하였다. 같은 해 4월 동지 김석황(金錫璜)과 같이 상해로 가서 임시정부의 지령을 받고 다시 귀국하여 의용단 평남지회를 조직하고 서무 부장이 되었다.
같은 해 6월 강서에서 전경하(全景河) 등 20여 명과 일신청년단(日新靑年團) 결사대를 조직하여 군자금의 모금과 항일 의식의 고취를 위해 진력하였다. 그 해 7월 장덕진(張德鎭)·안경신(安敬信) 등과 안주에서 일본 경찰을 사살하였고, 이용목(李用穆)·표영준(表永準) 등과 일본 관청의 폭파를 결의하고 김효록(金孝錄)과 함께 평안남도청에 폭탄을 던졌으나 불발되어 뜻을 이루지 못하였다.
그 뒤 상해 프랑스조계로 망명하여 하얼빈·길림 등지를 내왕하면서 동지를 규합하는 한편, 인성학교(仁成學校)의 교원으로 근무하였다. 1926년 3월 동지 이수선(李秀善, 英善)과 함께 상해의 일본 영사관에 폭탄을 던졌으나 실패하였고, 결국 일본 경찰에 붙잡혀 평양으로 압송되었다.
징역 15년을 선고 받고 평양형무소에서 복역하다가 6년 만에 가출옥하였다. 출옥 후에도 이른바 예비 검속 등으로 29회나 구금당하였다. 1950년 8월 6·25 전쟁 당시 북한 공산군에게 붙잡혀 경기도 광주에서 총살을 당하였다.
1962년 독립장이 추서되었다.