본관은 경주(慶州). 자는 가일(可一), 호는 유당(酉堂). 영의정 김흥경(金興慶)의 증손으로, 할아버지는 월성위(月城尉) 김한신(金漢藎)이고, 아버지는 판서 김이주(金頤柱)이며, 어머니는 윤득화(尹得和)의 딸이다. 아들이 김정희(金正喜)이다.
1801년(순조 1) 선공부정(繕工副正)을 지내고, 1805년 현감으로서 증광 문과에 병과로 급제, 지평을 거쳐 승지·이조참판 및 경상도와 평안도의 관찰사를 지냈다. 또, 1819년 예조판서를 비롯하여 이조·공조·형조·병조의 판서를 역임하였다.
그 뒤 대사헌을 거쳐 1827년 판의금부사·광주부유수·지돈녕부사 등의 요직을 거치고, 사행(使行)으로서 1809년 동지 겸 사은부사로, 1822년에는 동지사로 연경에 다녀왔다.
그러나 익종이 대리청정을 할 때 김로(金鏴)·홍기섭(洪起燮) 등과 같이 중직에 있으면서 전권을 행사하고, 이조원(李肇源)의 옥사를 밝히지 않았다는 이유로 1830년 지돈녕부사 재직 중 삼사와 의정부의 탄핵을 받아, 강진현의 고금도(古今島)에 위리안치(圍籬安置)되었다가 1833년에 귀양에서 풀려나 판의금부사를 지낸 뒤 1837년에 졸하였다.
사후인 1840년에 김홍근(金弘根)이 윤상도(尹尙度)의 옥사를 재론하여 관작이 추탈되었다. 1857년(철종 8)에 시원임대신(時原任大臣)의 연차(聯箚)로 신원되고 관작이 복구되었다. 글씨를 잘 써 아들인 김정희에게 큰 영향을 끼쳤으며, 「신라경순왕전비(新羅敬順王殿碑)」·「신의왕후탄강구묘비(神懿王后誕降舊墓碑)」 등의 글씨가 전한다.