본관은 광산(光山). 아버지는 김재두(金在斗)이다.
1891년(고종 28) 증광별시문과에 병과로 급제한 뒤 바로 부수찬(副修撰)이 되었다. 전적(典籍)·부사과(副司果)를 거쳐 1894년에는 낭청(郎廳)에 임명되었다.
1896년 이후에는 외부참서관(外部參書官)·교섭국장(交涉局長)·동래감리 겸 동래부윤을 지냈다. 1899년 이후에는 학부학무국장(學部學務局長)·법부사리국장(法部司理局長)을 거쳐 1906년에는 시종원부경(侍從院副卿)이 되고 칙임관 3등에 올랐다.
이어 궁내부특진관(宮內府特進官)을 거쳐 법부차관·궁내부협판(宮內部協辦)·제실회계심사국장(帝室會計審査局長)을 역임하고 칙임관 2등에까지 이르렀다.
1907년 11월에는 대원왕대원비원침천봉시검찰당상(大院王大院妃園寢遷奉時檢察堂上)에 임명되어 서울 마포구 공덕동에 있는 흥선대원군의 묘를 이장하는 일을 맡았으며, 그달말에는 전선사장(典膳司長)의 직책을 맡았다. 남긴 글로는 「경빈묘지문(慶嬪墓誌文)」이 있다.