본관은 청풍(淸風). 자는 대경(大卿), 초자(初字)는 기경(器卿), 호는 취당(翠堂). 청은군(淸恩君) 김익정(金益鼎)의 아들이며, 김윤식(金允植)의 종형이다. 유신환(兪莘煥)의 문인이다.
진사로 1869년(고종 6) 정시문과에 응시하여 병과로 급제한 뒤 동부승지(同副承旨)·공조참의(工曹參議)에 올랐다. 1880년 제물포조약의 약정(約定)을 이행하기 위하여 일본에 파견된 수신사 김홍집(金弘集)의 부사(副使)로서 수행하였다.
1882년 8월에는 일본에 파견된 수신사 박영효(朴泳孝)를 수신부사 겸 전권부사(修信副使兼全權副使)로서 수행하였다. 1882년 음력 12월 개화파 인사가 대거 등용된 통리교섭통상사무아문(統理交涉通商事務衙門)의 동문학협판(同文學協辦)으로 서양어 교육기관인 영어학교의 장교(掌校)가 되었고, 신문발간의 책임을 겸하게 되었다.
1883년 8월 17일 신문발간의 담당부서로서 박문국(博文局)을 신설하고, 신문발간을 추진, 10월 30일 『한성순보(漢城旬報)』창간호를 발행하였다. 1884년 갑신정변 후 개화파 인사가 대거 몰락하였을 때 심순택(沈舜澤)을 영의정으로 한 내각의 예조판서를 거쳐, 1894년 6월 평안도관찰사에 임명되었다.
그러나 청일전쟁의 와중에서 병부(兵符)를 잃었으므로 원주에 정배되었다. 1901년, 임종에 이르러서 외세로 말미암아 국운이 위태롭게 되었을 때 국사(國事)를 걱정하며 죽었다. 시호는 정효(靖孝)가 내려졌다.