본관은 광산(光山). 아버지는 김공현(金公鉉)이다.
1870년(고종 7)에 판부사(判府事) 이유원(李裕元)의 천거를 받았으며, 1889년 문과에 병과로 급제하였다.
1890년 사간원대사간에 오르고 1901년에 황태자의 장례비서승(掌禮祕書丞)을 지냈다. 1902년에는 궁내부특진관 및 칙임관4등에 올랐다. 1903년에는 봉상사제조(奉常司提調), 1906년에는 종묘서제조(宗廟署提調)에 임명되었다가 이해에 칙임관3등으로 올랐다.
1909년에는 정2품직인 종묘전사(宗廟典祀)가 되었다. 국운이 기울던 한말에 주로 왕실의 의전(儀典)을 담당하는 관서에 봉직하면서 조선왕조의 마지막 황태자까지 보필하였다.