본관은 나주(羅州). 자는 대숙(大叔). 아버지는 김인(金仁)이다.
어릴 때부터 김경일(金擎日)·조선철(趙善哲) 등과 함께 기성(箕城: 지금의 平壤)의 세 장사로 불리었다.
병자호란이 끝난 1637년(인조 15) 소현세자(昭顯世子)와 봉림대군(鳳林大君)이 심양(瀋陽)에 볼모로 갈 때 수행하여 호위한 8장사의 한 사람이다. 1643년 무과에 급제하였고, 1647년 호위의 공로로 당상관인 절충장군에 올랐다.
이듬해 평안도 관무시(平安道觀武試)에 장원하여 청성첨절제사(淸城僉節制使)가 되었다. 1649년 효종이 즉위하면서 8장사를 위한 별군직청(別軍職廳)이 신설되자, 별군직에 임명되어 특별한 은총을 받았다. 여러 관직을 거쳐 맹산현감(孟山縣監)에 이르렀다.