본관은 안동(安東). 자는 태수(台叟), 호는 서어(鋤漁). 이조판서 김상용(金尙容)의 후손으로, 할아버지는 김세랑(金世桹)이고, 아버지는 김병익(金炳翼)이며, 어머니는 윤석렬(尹錫烈)의 딸이다.
1813년(순조 13) 진사가 되고, 1820년 정시 문과에 갑과로 급제하여 지평이 되었다. 1822년 경상도암행어사로 나아가 각 지방의 부사·현감 등의 치적을 평가하여 상과 벌을 내리도록 건의하였다.
이듬해 왕세자가 섭행(攝行)하고 태묘에 제향할 때 대축(大祝: 종묘나 문묘에 제향을 올릴 때 축문을 읽는 사람)이 되었으며, 그 공으로 통정대부가 되었다. 1830년 대사간이 되고, 1841년 충청도관찰사를 거쳐 1845년 대사헌에 이르렀다. 저서에 『서어유고(鋤漁遺稿)』가 있다.