본관은 청풍(淸風). 자는 경도(景道), 호는 송석(松石). 김종정(金鍾正)의 증손으로, 할아버지는 김명연(金命淵)이고, 아버지는 참판 김동헌(金東獻)이며, 어머니는 이의곤(李義坤)의 딸이다.
1828년(순조 28) 진사가 되고 이듬해 정시 문과에 병과로 급제하였다.
1833년 대교(待敎), 1841년(헌종 7) 대사성을 거쳐 이듬해 홍문관부제학·이조참의·예방승지·이조참판을 지냈다. 1848년 한성부판윤·규장각제학에 이어 1849년 철종 즉위 후는 호조·예조·형조·공조의 판서와 광주부유수·우참찬 등 요직을 거쳤다.
흥선대원군이 집권한 뒤에도 계속 중용되어 1864년 판의금부사·규장각제학·예문관제학·홍문관제학·상호군(上護軍)·좌찬성 등의 청요직(淸要職)을 맡아 강관(講官)과 실록편찬 등의 제술관(製述官)을 겸하였다.
또, 예조판서·평안도관찰사·판중추부사 등을 역임하였고 시강원의 우빈객(右賓客)으로 사망하였다. 시호는 문헌(文獻)이다. 편서로는 『청풍김씨세보(淸風金氏世譜)』가 있다.