본관은 경주(慶州). 자는 회백(晦伯). 할아버지는 김원립(金元立)이며, 아버지는 정랑 김민교(金敏敎)이다.
1662년(현종 3) 사마시에 합격하여 생원이 되고, 20세 전에 선원전참봉(璿源殿參奉)이 되고 1662년(현종 3) 예빈시(禮賓寺)에 전임, 이해 증광 문과에 을과로 급제하였다.
정자(正字)·지평(持平)·집의(執義) 등을 거쳐 1689년 승지로서 숙종이 희빈장씨(禧嬪張氏)의 소생을 원자로 책봉한 것을 반대하다가 파직당하고, 같은 해 인현왕후(仁顯王后)의 폐출사건에 대하여 반대의 소를 올리고 두문불출하였다.
1694년 갑술옥사로 인현왕후가 복위되고 서인이 등용되자 호조참의로 기용된 뒤 좌승지·한성부우윤·호조참판·도승지·공조참판·형조참지·동지중추부사·경기도관찰사·개성부유수 등을 두루 지냈다.