본관은 광산(光山). 자는 중우(仲祐). 증조가 대사간 김만채(金萬埰)이고, 할아버지는 김진항(金鎭恒)이며, 아버지는 김성택(金聖澤)이다. 김경택(金慶澤)에게 입양되었다.
문음(門蔭)으로 관계에 진출하여 도사(都事)를 지냈다.
1759년(영조 35) 별시 문과에 을과로 급제하였다. 왕실과 혼인한 배경으로 사헌부·홍문관의 청요직(淸要職)을 두루 거쳐 1763년에는 통신사(通信使)의 종사관에 발탁되어 정사(正使) 조엄(趙曮)을 따라 일본에 다녀왔다. 곧 당상관에 올라 대사성·부제학·도승지 등을 역임하였다.
1771년에 지평 어석령(魚錫齡)으로부터 이조참의·전라도관찰사 재임시의 부정과 탐학상(탐욕이 많고 포악함)을 탄핵받았으나 영조의 옹호로 겨우 면할 수 있었다. 그 뒤 마음이 편하지 않던 중 비변사당상으로 병을 핑계로 차대(次對: 정기적으로 왕에게 정무를 아뢰는 일)에 나오지 않았다다.
이로 말미암아 영조의 노여움을 사서 한때 청주로 귀양을 가기도 했다. 곧 풀려나기는 하였으나 정조 즉위년에 홍인한(洪麟漢)·정후겸(鄭厚謙) 등의 역모에 가담하였다는 것으로 양사(兩司)의 집요한 탄핵을 받았다. 한때는 정조의 비호로 대사헌에 기용되기도 하였으나 결국 1777년(정조 1) 지도(智島)에 유배되어 그곳에서 죽었다.