본관은 광산(光山). 자는 성향(聖享). 김영목(金永穆)의 아들이며, 어머니는 홍영주(洪寧周)의 딸이다.
1877년 진사로서 춘도기(春到記)에서 우수한 제술 성적으로 직부 전시(直赴殿試)를 받아서 같은 해 증광 문과에 병과로 급제하였다.
그 뒤 홍문관응교를 지냈고, 갑신정변 뒤 민씨정권이 군제를 개편할 때 잠시 군사마(軍司馬)를 지냈다. 1890년 갑신정변의 연루자로 투옥되었던 박호양(朴顥陽)이 방면되자 사간원대사간으로 강력하게 반대하였다.
1892년 예조참의로 왕세자수하절목(王世子受賀節目) 수정작업에 참여하였는데, 그 절목이 이용원(李容元)에게 비판을 받자 사임하고자 하였으나 허락받지 못하였다.
1900년을 전후하여 광주군수(光州郡守)·경주군수로 재임하였는데, 탁지부에서 김천수가 모리배와 짜고 세금 상공을 지체하였고, 교체시에도 세금관계가 불분명하므로 면관시키고 조사할 것을 요청하였다.
이에 1907년 비서승(秘書丞)에 임명될 때까지 관직에서 물러나 있었고, 순종의 즉위식에 비서승 겸 장례(秘書丞兼掌禮)로 활약하였다. 또한, 규장각기주관을 지냈으며, 1910년 8월 훈3등(勳三等)을 받고, 정2품으로 승급되었다.