본관은 선산(善山). 자는 재이(載而). 김경직(金敬直)의 증손으로, 할아버지는 김종필(金宗泌)이고, 아버지는 김시헌(金時獻)이며, 어머니는 황도형(黃道亨)의 딸이다.
1682년(숙종 8) 증광 문과에 병과로 급제, 사간원에 들어갔다.
1689년 오두인(吳斗寅)·박태보(朴泰輔) 등과 함께 인현왕후(仁顯王后) 폐출의 부당성에 대한 소를 올린 바 있다. 1694년 갑술옥사로 남인이 몰려나고 서인이 정권을 잡자, 사헌부에 발탁되어 우의정 최석정(崔錫鼎)의 삭탈관작을 청하고 훈련대장 신여철(申汝哲)의 추고를 청하는 등 강경한 언론을 많이 행사하여 여러 번 체직당하기도 하였다. 그 뒤 동래부사·황해도관찰사 등 외직을 거쳐 오랫동안 승지에 임용되었으며 관직이 호조참판에 이르렀다. 재능이 있고 근면하였으나 일을 처리하는 데 가혹한 점이 있어 주위의 원망을 사기도 하였다.