본관은 경주(慶州). 자는 덕유(德裕), 호는 용주(龍洲) · 용곡(龍谷). 할아버지는 김자진(金自珍)이고, 아버지는 진사 김두징(金斗徵)이며, 어머니는 윤필은(尹弼殷)의 딸이다.
1693년(숙종 19) 사마시에 합격하고, 1710년 증광 문과에 병과로 급제하였다. 이듬해 설서(說書)를 거쳐 1714년 함경북도 암행어사로 파견되었다. 1716년 수찬(修撰)이 되고 홍문록(弘文錄)에 올랐으며, 이듬해 정언(正言) · 사간 · 교리(校理) · 대사헌 · 대사간 · 동지경연을 거쳐 다시 참판 · 도승지 · 한성 판윤 · 공조 판서 등을 두루 역임하였다.
성품이 강직하고 바른말을 잘했는데, 사간원에 들어가서는 통신사 조태억(趙泰億)이 국위를 손상시킨 죄를 심하게 탄핵하기도 하였다. 지방 관직으로는 1719년 의주 부윤을 거쳐 이듬해 황해감사를 역임하였다.
1722년(경종 2) 신임사화로 인해 평안도의 숙천(肅川)에 유배되었다가 이듬해 가까운 곳으로 이배되었다. 1725년(영조 1) 노론이 집권하자 풀려나 호조 참의가 되고, 도승지 · 대사헌을 거쳐 동지부사로 청나라에 다녀오고 이듬해 이조참판이 되었다.
1727년 정미환국 때 부사직으로서 『숙종실록(肅宗實錄)』의 보수에 반대한다는 소론의 탄핵으로 제주도의 대정(大靜)에 유배되었다. 그러다가 곧 영광에 옮겨졌고 1729년 소론이 물러나자 석방되었다.
이듬해 형조참판이 되자, 앞서 소론들이 기록한 신임사화의 죄상을 적은 「임인옥안(壬寅獄案)」을 다시 쓰자고 상소하였고, 이어 노론 사대신(四大臣: 김창집 · 조태채 · 이이명 · 이건명)에 대한 무고를 추론하라고 주장하였다. 그러나 탕평책을 추구하던 영조의 조처로 상소문이 소각되었다.
1736년 호조참판 · 부제학을 거쳐 판윤 · 평안도 관찰사가 되었으며, 1744년 대사헌이 되어 탕평책을 반대하는 노론 계열의 소장 세력을 옹호하다가 파직되었다. 1746년 좌참찬으로 관직에서 물러난 뒤 1748년 숭록대부에 특진되었다. 시호는 효정(孝貞)이다.