본관은 광산(光山). 자는 중행(仲行), 호는 백운헌(白雲軒). 병자호란 때의 순절인 김익겸(金益兼)의 증손으로, 할아버지는 숙종의 장인인 김만기(金萬基)이고, 아버지는 예조판서 김진구(金鎭龜)이며, 어머니는 이광직(李光稷)의 딸이다.
1699년(숙종 25) 사마시에 합격, 진사가 되고, 1704년 춘당대 문과에 병과로 급제한 뒤, 1717년에 평안도감진어사(平安道監賑御史)로 나갔고, 1719년 부수찬(副修撰) 조상건(趙尙健)과 함께 위패사건(違牌事件)으로 파직당하였다가 다시 승지로 기용된 뒤 세자의 명에 의해 충청도균전사(忠淸道均田使)가 되었다.
그 뒤 부제학·호조참판·형조참판에 이르렀으나, 1722년에 신임사화로 소론이 집권하자 영변(寧邊)에 유배되었다가, 다시 반역을 도모한다는 목호룡(睦虎龍)의 무고로 노론 4대신과 함께 장살(杖殺)되었다. 뒤에 이조판서에 추증되었으며, 시호는 충정(忠貞)이다.