본관은 안동(安東). 자는 성민(聖民). 아버지는 김준근(金寯根)이다.
1878년(고종 15) 정시별시문과에 병과로 급제하였다. 1880년 규장각대교(奎章閣待敎)를 거쳐 1886년에는 시강원사서(侍講院司書)가 되었다. 이듬해에 대사성(大司成)을 거쳐 1888년에는 이조참의가 되었으나 바로 파직되었다.
1889년 좌부승지를 거쳐 1891년 다시 이조참의에 임명되었으며, 1892년 4월에는 대사간으로 임명되었다. 그 뒤 한동안 징계를 받아 쉬다가 1900년에 징계에서 풀려나 이듬해에 비서원승(秘書院丞)이 되었다. 1906년에는 봉상사제조(奉常司提調)가 되어 칙임관 3등에 올랐으며, 1907년 1월에는 궁내부특진관으로 임명되었다.