본관은 의성(義城). 자는 천개(天開). 안동 출신. 할아버지는 김추길(金秋吉)이고, 아버지는 감사 김성구(金聲久)이며, 어머니는 민환(閔桓)의 딸이다.
1687년(숙종 13) 식년 문과에 을과로 급제, 정언(正言)·지평(持平)을 역임하였고, 1693년에는 도당록(都堂錄)에 오르고 수찬(修撰)이 되었다. 1690년 정언으로 재직 중 세자책봉하례(世子冊封賀禮)에 참석하지 않은 영돈녕부사 조사석(趙師錫)을 “교만하고 인신(人臣)의 예(禮)가 없다.”고 탄핵하여 귀양보냈다.
그런데 1694년 갑술옥사로 남인이 숙종의 미움을 받아 실각하고 소론이 득세하자, 파직당하여 명천(明川)으로 귀양갔다. 저서로는 『북천록(北遷錄)』과 잡저(雜著)가 전한다.