본관은 함창(咸昌). 자는 휴백(休伯), 호는 백남(白南). 영천(榮川) 출신. 아버지는 통덕랑 김정휘(金鼎輝)이며, 어머니는 이상언(李尙彦)의 딸이다.
1702년(숙종 28) 사마시에 합격하고, 그해 별시 문과에 병과로 급제하였다. 필선(弼善)을 거쳐 1724년(영조 즉위년) 장령(掌令)이 되어 영조의 탕평책을 두둔하다 오히려 화근이 되어 명천군수로 좌천되었다.
1728년 이인좌(李麟佐)의 반란이 영남지방으로 확대되자 채성윤(蔡成胤)의 천거로 영남의 요충을 방비하는 데 적합한 인물로 뽑혀 울산부사가 되었다. 그곳에 부임하여 폐습을 과감히 개선하는 등 선정을 베풀다가 임지에서 죽었다.