본관은 언양(彦陽). 자는 백우(伯雨). 아버지는 김여석(金汝錫)이며, 김양묵(金陽默)에게 입양되었다.
1768년(영조 44) 정시 문과에 병과로 급제하여 사관(史官)을 역임하였다.
1772년에는 사간원정언으로 벽파(辟派)를 공격하다가 죄를 얻어 관작을 삭탈당하고 충군(充軍)되었다. 1774년에 다시 장령으로 기용되어 사간과 집의를 지냈고, 1775년에는 헌납으로 화폐주조의 폐단을 논하였다. 1776년 정조가 즉위하자 시파(時派)의 선봉장이 되어 벽파의 탄핵에 앞장섰다.