본관은 김해(金海). 자는 자회(子懷), 호는 동원(東園). 김희맹(金希孟)의 증손으로, 할아버지는 김진선(金盡善)이고, 아버지는 헌납 김덕승(金德承)이며, 어머니는 윤정(尹珵)의 딸이다.
1682년(숙종 8) 춘당대 문과에 병과로 급제하였으며, 1685년에 봉교(奉敎)가 되었고, 이듬해 문과 중시에 병과로 급제하였다. 그해 정언이 되었고, 이듬해 지평으로 승진하였으며, 도당록(都堂錄)에 올랐다.
1688년에는 고부사(告訃使)의 서장관으로 청나라에 다녀왔다. 1694년 황해도관찰사에 임명되었으며, 이어서 승지·예조참의·여주목사·대사간 등을 역임하였다.