본관은 의성(義城). 자는 사흥(士興), 호는 지촌(芝村). 김극일(金克一)의 증손으로, 할아버지는 진사 김철(金澈)이고, 아버지는 김시온(金是榲)이며, 어머니는 지평 김봉조(金奉祖)의 딸이다.
1660년(현종 1) 증광 문과에 병과로 급제하여 1675년 지평, 이듬해 정언을 거쳐 장령이 되어 이서(吏胥)들의 방납(防納)으로 인한 백성들의 피해를 상소하였다.
그 뒤 부수찬·수찬 등을 지내고 1689년 사간이 되었으나, 그해 인현왕후 민씨(仁顯王后閔氏)가 폐위되자 간관(諫官)으로 왕의 과오를 사전에 방지하지 못한 데 책임을 느껴 낙향하였다. 이듬해 승지가 되었으며 1692년에 대사간, 이듬해 대사성을 지냈다. 저서로는 『지촌문집(芝村文集)』이 있다.