충청남도 청양 출신. 1905년 을사조약이 강제 체결되자 궁내부주사를 사직하고 정재호(鄭在鎬) · 김덕진(金德鎭) 등과 함께 일제를 축출할 것과 을사오적을 토멸하기로 결의하고, 민종식(閔宗植)을 총대장으로 추대하고 자신은 운영대장격인 향관(餉官)에 임명되었다.
1906년 4월 중순과 하순에 정산 · 홍산 · 서천 · 남포 등지에서 의병대를 편성하고 총포와 탄약 등을 입수하여 대포병 200명, 총수(銃手) 200명, 비인(庇仁)의 사병 100명, 남포의 사병 100명 등으로 홍주성을 공격하여 적 10여 명을 사살하고 4명을 사로잡는 전과를 올리고 홍주성을 함락하였다. 그러나 5월 7일 일본군의 불의의 습격으로 홍주성을 빼앗겼다. 재탈환을 모색하던 중 적에게 잡혀 서울로 압송되었다.
평리원재판소에서 종신유형을 선고받고 9개월간 옥고를 치른 뒤 진도로 유배되었다. 1907년 7월 일본관헌이 고위관직으로 회유하고자 하였으나 이를 거부하고 항일사상 선양에 주력하였다.
1910년 일제가 한국을 강점하자 그 부당함을 공언(公言)하다가 연행되어 고문을 당하였다. 그날밤 탈옥하여 죽을 때까지 은신하였다. 은거중 항일의병투쟁에 관한 기록을 정리하여 『의거실기(義擧實記)』를 저술하였다.
1968년 대통령표창, 1977년 건국포장, 1990년 애국장이 추서되었다.