본관은 경주(慶州). 자는 덕용(德容). 김필진(金必振)의 증손으로, 할아버지는 김개신(金介臣)이고, 아버지는 은율현감 김세연(金世衍)이며, 어머니는 박필구(朴弼耉)의 딸이다.
사복시정(司僕寺正) 김구연(金九淵)에게 입양되어 숙종의 계비 인원왕후(仁元王后)의 친정 조카 뻘이 되었다.
처음에는 문음(門蔭)으로 이천부사(利川府使)가 되었다가 1756년(영조 32) 식년 문과에 갑과로 급제하여 이듬해에 승지로 특진되었다.
1762년에는 대사헌(大司憲)에 임명되었고, 뒤에 경기도관찰사로 나갔다. 1764년에 전은군(全恩君) 이돈(李墩)·안표(安杓)와 함께 사은사가 되어 청나라에 다녀왔다. 1767년에는 함경도관찰사로서 백두산의 제사를 위한 제단 설치의 논의에 참여, 그 위치를 갑산(甲山)에 정하도록 건의하여 채택되었다. 그 뒤에 예조판서를 역임하였다.