본관은 울산(蔚山). 자는 사형(士衡). 호는 금초(金樵)·아산(鵝山)·만은(晩隱). 아버지는 동지중추부사 김의정(金義楨)이며, 어머니는 경주김씨로 김효원(金孝源)의 딸이다.
어린 시절에 변상철(邊相轍)·고시경(高時景) 등에게 수학하였으며, 1876년(고종 13) 식년문과의 명경과(明經科)에 급제하여 승문원부정자가 되었다.
그 뒤 가주서에 재임 중 임금의 비답(批答: 임금이 신하가 올린 상소(上疏)·차자(箚子) 등에 대해 내린 답서)을 잘못 쓴 죄로 의금부의 심문을 받았으며, 1879년 특지(特旨)에 의하여 율봉도찰방(栗峯道察訪)이 되어 이듬 해에 춘추관기사관을 겸임하면서 『음청일기(陰晴日記)』의 수찬(修撰)에 참여하였다.
1882년 성균관전적을 거쳐 사헌부지평을 지내다가 사임하였고, 2년 뒤 다시 사헌부지평에 재임하면서 대사간 윤구영(尹龜永), 집의 윤상익(尹相翊) 등과 함께 복제변경(服制變更)에 반대하는 상소를 하였다가 임금의 노여움을 사서 파직당하였다.
이듬 해에 사간원정언으로 다시 서용되었고 1886년 홍문관부수찬으로 승진하였다. 그 뒤 사헌부장령·홍문관교리·장악원정·사복시정 등을 두루 역임하면서 강화유수 민영규(閔泳奎)와 강원감사 윤영신(尹榮信) 등에게 내리는 교서를 제진(製進)하였다. 저서로는 『금초집(金樵集)』 2권 1책이 있다.