본관은 안동(安東). 자는 회경(晦卿). 김이장(金履長)의 증손으로, 할아버지는 김태순(金泰淳)이고, 아버지는 판서 김교근(金敎根)이며, 어머니는 오재선(吳載選)의 딸이다.
1820년(순조 20) 진사가 되고 그해 정시 문과에 병과로 급제하여 검열·정언(正言)을 지낸 뒤 1827년 평안도안핵사(平安道按覈使)로 나가 당시 초산(楚山) 지방에 일어난 민란을 수습하고 착취가 심한 부사 서만수(徐萬修)를 파직시켰다.
곧 이어 대사성·예방승지를 거쳐 개성부유수가 되어 상세(商稅)를 혁파하고 주전(鑄錢)에서 생기는 잉여로써 대신할 것을 건의하여 시행하였다. 그러나 아버지와 함께 탐학으로 탄핵을 받아 유배되었다가 풀려나와 1836년에 이조참판에 기용되었다. 그 뒤 부호군(副護軍)을 거쳐 함경도관찰사로 재직 중에 병사하였다.