본관은 청풍(淸風). 자는 형보(衡甫). 김문도(金文道)의 증손으로, 할아버지는 김계(金繼)이고, 아버지는 김창연(金昌演)이며, 어머니는 이희석(李喜錫)의 딸이다. 김대연(金大演)에게 입양되었다.
1761년(영조 37) 정시 문과에 병과로 급제한 뒤, 지평(持平)·부교리(副校理)·사간 등을 거쳐 1786년(정조 10) 대사간이 되었다. 10년간 대사간을 역임하였는데, 1790년에는 대사간으로서 제주에 위리안치된 판중추부사 유언호(兪彦鎬)의 방면을 상소하였다가 순흥부사로 좌천되었다.
당시는 소론과 노론의 파쟁이 심하였던 때였으므로 이들의 행위도 정쟁의 한 결과였다. 즉, 유언호는 1736년(영조 12)에 서원을 불법적으로 많이 설치되는 폐단을 상소하였다가 노론의 탄핵을 받고 귀양을 갔던 남인 조덕린(趙德隣)을 신원하려다가 파직되었던 것이다. 이듬해 다시 대사간이 되고, 이어 행호군(行護軍)·공조판서·이조판서 등을 차례로 역임하였다.