본관은 청풍(淸風). 자는 정부(定夫), 호는 진솔(眞率) 또는 몽오(夢梧). 서울 출신. 우의정 김구(金構)의 증손으로, 할아버지는 참판 김희로(金希魯)이고, 아버지는 시직(侍稷) 김치만(金致萬)이며, 어머니는 홍석보(洪錫輔)의 딸이다. 부인은 교리(校理) 윤득경(尹得敬)의 딸이다.
1768년(영조 44) 식년 문과에 병과로 급제해 예조정랑, 부수찬(副修撰)을 지내고, 왕세손 필선(弼善)으로 성실히 보좌하였다. 이 때 외척의 정치 간여를 배제해야 한다는 의리론이 정조에게 깊은 감명을 주어, 뒷날 정치의 제1의리로 삼은 정조의 지극한 신임을 받았다.
1772년 청명(淸名: 청렴함과 명예)을 존중하고 공론을 회복해 사림 정치의 이상을 이루려는 이른바 청명류(淸名流)의 정치적 결사가 드러날 때, 당파를 없애려는 영조에 의해 조정(趙晸)·김치인(金致仁)·정존겸(鄭存謙)·이명식(李命植) 등과 함께 지도자로 지목되어 경상도기장현의 금갑도(金甲島)로 유배되었다가 다음 해 방면되었다.
영조가 죽자 행장찬집당상(行狀纂輯堂上)이 되었고, 그 뒤 승지·경기도관찰사·평안도관찰사를 거쳐, 규장각의 제도가 정비되면서 제학에 임명되었다. 1781년(정조 5) 대제학에 올랐고, 그 뒤 이조판서·병조판서를 거쳐 1789년 우의정에 올랐다.
1792년에 영남만인소(嶺南萬人疏)가 올라와 사도세자를 위한 토역(討逆)을 주장하자, 예전에 정조와 대담했던 내용인 “순(舜)·주공(周公)과 같은 대공지정(大公至正)의 도리로서 부모를 섬김이 효도.”라는 소를 올려 이 논의를 가라앉혔다.
다음 해 좌의정에 임명되었고, 1794년사도세자를 위한 토역을 다시 주장한 남인 채제공(蔡濟恭)과 양립할 수 없다는 의리를 굽히지 않아 정조의 두 의리를 조제하는 탕평에 대한 배신으로 지목되어 평해에 유배, 남해에 이배되었다가 그 해에 치사(致仕: 벼슬길에서 은퇴함)해 봉조하가 되었다.
순조 때에는 척신인 김구주(金龜柱) 및 심환지(沈煥之)들과 당파를 이루어 정조를 기만하고 뒤에서 그 치적을 파괴해 자신의 이익을 추구했다 하여 관작이 추탈되었다가 곧 회복되었다. 1802년(순조 2)에 유언호(兪彦鎬)와 함께 정조묘에 배향되었다.
임성주(任聖周)·윤시동(尹蓍東)·김상묵(金尙默) 등과 친하게 교유했으며, 어려서부터 경술(經術)로써 일세를 풍미했다 한다. 정조는 윤시동·채제공과 더불어 3인을 자신의 의리를 조제하는 탕평의 기둥으로 지적하였다. 『문신강제절목(文臣講製節目)』을 지어 올렸으며, 저서로는 『몽오집(夢梧集)』이 있다.