본관은 청풍(淸風). 자는 치현(稚賢), 호는 수재(修齋). 황주목사(黃州牧使) 김진교(金晉敎)의 아들이다.
1843년(헌종 9) 식년문과에 병과로, 1846년 문과중시에 을과로 각각 급제한 뒤 부교리(副校理)로 출사(出仕)하였다. 1850년(철종 1)에는 당시 민란이 빈발하던 경상좌도의 암행어사가 되어 예천·흥해(興海)·양산·장기(長鬐)·안동·동래 등지의 탐관오리들을 숙청하였다.
그 뒤 사간원대사간·이조참의·이조참판을 거쳐 1869년(고종 6) 경상도관찰사가 되었다. 그 동안 저지대에 위치하여 수해가 잦았던 영일현과 진보현의 읍치(邑治)를 고지대로 옮기고, 포항진(浦項鎭)을 복설하는 대신 청천진(晴川鎭)을 폐치, 해안방비체제를 강화하는 등의 치적을 남겼다.
그러나 1874년 민정의 규찰을 태만히 하고 훈도 안동준(安東晙)과 공모하여 변흔(邊釁)을 일으켰다는 죄목으로 경상도 암행어사 박정양(朴定陽)의 탄핵을 받아 중화(中和)로 유배되었다.
얼마 뒤 노모의 간절한 정성으로 향리로 추방된 다음 1879년 방면되었다. 이듬해 다시 기용되어 한성부판윤을 역임하였다. 저서로는 『논어석의(論語釋疑)』·『강화설제편(講話說諸篇)』 등이 있다.