본관은 광산(光山). 김재형(金在珩)의 아들로 김재현(金在顯)에게 입양되었다.
1880년(고종 19) 경과정시문과에 병과로 급제하여 부수찬이 되었는데, 그 이전에 세자익위사에 근무하고 있었다.
1882년 임오군란이 일어난 뒤 홍문관응교로서 명성황후의 장례를 준비하고 흥선대원군 하야에 반대하였으나, 섬에 유배된 박우현(朴遇賢)을 석방하라는 흥선대원군의 명령에 반대하였다.
민씨정권이 다시 수립되었지만, 등용되지 못하다가 1880년대 후반에야 이조참의·성균관대사성을 거쳐 우부승지가 되었다.
그 뒤 관계에서 물러나 있다가 건양·광무연간에 이르러 궁내부특진관·봉상사제조·장례원경 등에 임용되었다. 1902년 내부대신이 되어 의정 윤용선(尹容善) 등과 함께 이용익(李容翊)을 처벌할 것을 주장하였다.
다음 해 10월까지 내부대신으로 재직하였지만, 의정 이근명(李根命)이 수령 임명을 주의하라는 자신의 말에도 불구하고 70여 자리를 두고 물의가 분분하자 파면할 것을 주청하였다가 면관되었다.