본관은 의성(義城). 자는 공립(公立), 호는 만회헌(晩悔軒). 아버지는 호군(護軍) 김재인(金在仁)이며, 어머니는 남양홍씨로 홍종해(洪宗海)의 딸이다. 가학을 이어받았다.
1830년(순조 30) 정시문과에 을과로 주1, 2년 뒤 승문원정자에 임명되었고, 1834년 명릉별검(明陵別檢)에 제수되었다. 헌종이 즉위하자 2월에 성균관전적을 거쳐 예조좌랑에 임명되었고, 이 때 왕명을 받들어 칙사(勅使)를 영접하였다.
그 뒤 사간원정언 · 사헌부지평 · 홍문관수찬 · 장악원판사 · 현풍현감 등을 지냈다. 현풍현감에 재직하면서 아울러 창녕 · 청도 · 양산 · 영산의 4군을 다스릴 때, 밀양포(密陽浦)에 수송해 온 세미(稅米)를 둘러싸고 밀양의 관리들이 농간을 부리자 이 사실을 조정에 보고, 민생의 안정을 도모하여 주민들이 송덕비를 세웠다.
1847년(헌종 13) 다시 지평에 제수되었고, 홍문관응교 · 김해부사 · 승정원우부승지 등을 차례로 역임하였다. 한때 경연에서 임금에게 정치의 요체와 중농정책 · 교육의 진흥 등에 관해 상주하기도 하였다. 저서로는 주2이 있다.