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