본관은 청풍(淸風). 자는 사긍(士肯), 호는 관복재(觀復齋). 김인백(金仁伯)의 증손으로, 할아버지는 김극형(金克亨)이고, 아버지는 관찰사 김징(金澄)이며, 어머니는 참봉 이의길(李義吉)의 딸이다.
1669년(현종 10) 사마시에 합격하고, 1682년(숙종 8) 춘당대 문과에 장원해, 전적과 각 조의 낭관을 거쳤다. 사헌부와 사간원에 있을 때, 노론·소론의 격렬한 대립을 완화하기 위해 만언(萬言)에 가까운 시무소(時務疏)를 올려 일반의 찬탄을 받았으며, 양파의 대립을 조정하는 데 힘썼다.
경연관·수찬·승지 등을 거쳐 황해도·충청도·전라도·평안도의 4도 관찰사를 역임하고, 대사간을 거쳐 1697년 강화유수로서 장녕전(長寧殿)을 경영해서 세운 공으로 가자(加資)되었다.
그러나 오도일(吳道一), 이광좌(李光佐) 등으로부터 흉년으로 모든 역사를 정지시켰는데도 내전(內殿)의 명을 받들어 집을 지었다 해서 탄핵을 받기도 하였다.
이어 판결사(判決事)에 있으면서 노산군(魯山君: 단종)의 복위를 적극적으로 주장해 숙종으로 하여금 단종의 위(位)를 추복(追復)하게 하였다. 아울러 단종비 송씨(宋氏)의 묘를 능으로 추봉하고 능역을 감독해 그 공으로 형조판서에 올랐다. 이어 육조의 판서를 거쳐 1703년 우의정이 되었다.
임금의 위엄에 굽히지 않았고, 의리에 따라 처신했으므로 임금의 총애와 모든 사람의 존경을 받았다. 『육도(六韜)』등 병서와 도가류(道家類)에 정통했으며, 문장이 뛰어나고 글씨가 힘찼다. 글씨로는 고성(高城)에 있는 「백천교중창비(百川橋重刱碑)」와 선산에 있는 「김주신도비(金澍神道碑)」가 있다. 시호는 충헌(忠憲)이다.