본관은 광산(光山). 자는 복여(福汝), 호는 하정(荷亭). 김우현(金宇鉉)의 아들이다.
1870년 정시 문과에 을과로 급제하여 1876년 성균관대사성, 1878년 이조참의, 1879년 강화부유수, 1881년 이조참판을 거쳐, 1882년 예조판서·경상도관찰사, 1883년 평안도관찰사, 1884년 호조판서를 역임하였고, 그 뒤 1890년까지 예조·이조·호조·병조·공조의 판서 등을 두루 지냈다.
1891년에는 한성부판윤이 되었고, 1892년 홍문관대제학, 1895년 궁내부특진관, 1896년 의정부찬정, 1897년 장례원경(掌禮院卿)·홍문관태학사, 1898년 의정부참정(議政府參政) 등을 지냈다. 특히 문재에 뛰어나 고종의 총애를 받았다.