본관은 해평(海平). 한말의 정치가 치호(致昊)의 아버지이다. 1856년(철종 7) 무과에 급제, 1880년 2차 수신사 김홍집(金弘集)의 수행원으로 일본에 다녀왔다. 이때 도쿄[東京]에서 동양3국의 협력을 취지로 하여 일본 정계와 학계 인물 및 일본체류 중국외교관들이 만든 흥아회(興亞會)의 환영회에 참석했으며, 개화승 이동인(李東仁)의 소개로 일본 조야인사들과 접촉했다. 이듬해 함경남도병마절도사를 거쳐 1881년 5군영(五軍營)에서 지원자 80명을 선발하여 조선 최초의 신식군대인 별기군을 만들고, 좌부영관(左副領官)으로서 별기군의 운영을 주도했다. 1882년 임오군란이 일어나자 정부의 지시로 일본 판리공사(辦理公使) 하나부사[花房義質]에게 군민들이 일본공관을 습격할 계획을 세우고 있다고 통보하고 자위책을 강구하도록 했다. 군민들이 친일인물들의 집을 파괴하고 일본공관을 급격하자 서울을 탈출하여 원산을 거쳐 부산으로 가서, 박제경(朴齊絅)과 일본군 중위 가이즈[海津]의 주선으로 일본 나가사키[長崎]로 망명했다. 임오군란이 실패한 후 귀국하여, 김옥균(金玉均) 등 개화당 인물들과 가깝게 지냈으나 조직에 직접 참여하지는 않았으며 그들의 급진적이고 혁명적인 행동에는 반대하여 신중론을 펼쳤다. 1884년 갑신정변이 일어나자 내각의 형조판서에 임명되었다. 1895년 제3차 김홍집 내각의 경무사(警務使)로 임명되었다. 그해 을미사변이 일어나자 10월 12일 미국 공사를 비롯한 주한 구미외교관들의 협력을 얻어 고종을 궁성 밖으로 모셔나와 친일정권을 타도하고 새 정권을 수립하려던 춘생문사건(春生門事件)에 호응, 이를 조종했으나 실패로 돌아가자 중국 상하이[上海]로 망명했다. 러일전쟁 무렵 정계를 은퇴한 후 기독교에 귀의했다. 1910년 8월 일제가 조선을 강점한 후 조선 합병에 공을 세운 친일인물들을 포상할 때 남작의 작위와 공채 2만 5,000원을 받았다.