본관은 풍산(豊山). 자는 사행(士行), 호는 죽봉(竹峯). 아버지는 김필신(金弼臣)이며, 어머니는 예안이씨로 통덕랑 이천표(李天標)의 딸이다. 이유장(李惟樟)의 문인이다.
1693년(숙종 19) 사마시에 합격하였다.
1701년 김장생(金長生)을 문묘(文廟)에 배향하는 데 반대하는 소를 올린 것으로 인하여 2년 동안 광양에 유배되었다. 1710년 58세로 증광문과에 병과로 급제하여 승문원에 들어갔다. 이듬해 황산찰방이 되어 선정을 베풀어 떠난 뒤 송덕비가 세워졌다.
그 뒤 이수익(李壽益)의 천거로 사재주부에 임명되었다가 예조좌랑·예조정랑이 되었다. 1728년(영조 4) 이인좌(李麟佐)의 난에 유승현(柳升鉉)을 장수로 삼아 의병을 일으켰다가 난리가 평정되어 파하였다.
그 뒤 사예·병조정랑 등에 임명되었으나 나가지 않았고, 1732년 품계가 통정대부에 오르고 호군(護軍)에 임명되었다가 바로 장례원판결사(掌隷院判決事)가 되었다. 권두경(權斗經)·이재(李載)·조덕린(趙德隣) 등과 교우를 맺었다.
1788년(정조 12) 이진동(李鎭東) 등이 이인좌의 난에 공을 세우고 포상받지 못한 31인의 치적을 상소할 때에 제일 앞에 놓였다. 낙연서원(洛淵書院)에 봉향되었다. 저서로는 『죽봉문집(竹峯文集)』 2책이 있다.