본관은 안동(安東). 자는 의경(毅卿), 호는 춘산(春山). 김달행(金達行)의 증손으로, 할아버지는 좌의정 김이경(金履慶)이고, 아버지는 이조참판 김명순(金明淳)이며, 어머니는 신광온(申光蘊)의 딸이다.
위수(衛戍)로서 1829년(순조 29) 정시 문과에 병과로 급제, 안동김씨의 세도를 배경으로 부교리에 특진되고, 우권독을 거쳐 1831년 동지부사로 청나라에 다녀왔다. 그 뒤 승지·대사성·이조참판·홍문관부제학 등을 지내고, 1839년(헌종 5) 한성부판윤을 거쳐 이조·공조·병조의 판서와 홍문관제학·우참찬 등을 지냈다.
이듬해 대사헌으로서 풍양조씨와 안동김씨의 세력다툼에 대한 시폐의 상소를 올리고 병을 이유로 사직하고자 하였으나, 오히려 의정부좌참찬으로 기용되었다. 1841년 좌의정에 올랐다가 이듬해 사퇴하고 판중추부사가 되어 관직에서 물러났다. 시호는 문익(文翼)이다.