본관은 청주(淸州). 자는 덕원(德園), 호는 백우(伯友).
1799년(정조 23) 무과에 급제하고, 선전관을 거쳐 훈련원주부·도총부경력 등을 역임했으며, 1811년 가산군수로 임명되었다.
이 때 홍경래의 난이 일어났는데, 홍경래가 통솔하는 남진군은 선봉장 홍총각(洪總角)을 필두로 그 날로 가산에 진격, 군리(郡吏)들의 내응으로 쉽게 읍내를 점령하였다.
당시 평안감사 이만수(李晩秀)의 장계에 따르면, “그 날 난리가 일어난다고 민심이 흉흉하고 군내가 떠들썩하며 백성들이 피난가려 하자, 그는 홀로 말을 타고 군내를 돌아다니면서 백성들을 효유하여 피난가는 것을 중지시켰다. 그러나 봉기군 50여 명이 관아에 돌입하여, 살고 싶으면 인부(印符)와 보화를 내놓고 항복문서를 쓰라고 하자, 그는 ‘내 명이 다하기 전에는 항복할 수 없다. 속히 나를 죽여라.’ 하고, 그들의 대역무도함을 꾸짖다가 칼에 맞아 죽었다. 그의 아버지 역시 그대로 적의 칼을 받았다.”고 하였다.
봉기군은 각 지방 관속들의 내응으로 며칠만에 7개 지역을 점령하였다. 당시 관군은 제대로 응전조차 하지 못한 채 그대로 패퇴하였다. 정부에서는 상황판단조차 올바로 할 수 없는 상태였으며, 이들 지역의 군수들은 봉기군에게 치욕적으로 항복하였다.
먼저 곽산군수 이영식(李永植)은 벽장 속에 숨었는데 발각되어 옥에 갇혔다가 야반도주하였다. 또 정주목사 이근주(李近胄)는 향교로 피신했으나 적과 내통한 좌수·집사 등이 목사의 인부를 빼앗고 안주병영으로 쫓아보냈으며, 박천군수 임성고(任聖皐)는 처자와 노모까지 버려둔 채 서운사로 숨었다가 노모의 구금 소식을 듣고 봉기군에 항복하였다.
더구나 선천부사 김익순(金益淳)의 경우, 수하 군졸을 데리고 검산산성(劍山山城)에 숨어 있다가 김사용(金士用)이 격서를 보내 위협하자 항서를 쓰고 새끼로 목을 매고 와서 항복하여 옥에 갇혔다.
그 뒤 김사용이 김익순의 족쇄를 풀게 하고 전(錢) 30냥, 백미 30석, 민어 10마리, 조기 10속(束)을 보내며 “이젠 서울에 가도 생명을 보존하기 어려우니 같이 일하자.”고 하자 봉기군에 합류하였다. 이렇듯 지방수령들의 수치스런 항복 속에서 그의 죽음은 너무나도 값지고 떳떳했던 것이다.
순조는 그의 의로운 죽음을 기리는 뜻에서 병조참판·지의금부사·오위도총부부총관을 추증하고, 관(棺)을 하사하였다. 관찰사의 진상보고를 다시 접한 순조는 그 충렬을 찬탄하고 병조판서 겸 지의금부사·오위도총부도총관을 가증(加贈)하였다. 그리고 살아남은 동생과 수청기생에게도 관직과 상품을 내렸다.
1813년 왕명으로 정주성 남쪽에 사당을 세워 당시 싸우다 죽은 6인과 함께 제사를 지내도록 하니, 이를 7의사(七義士)라 한다. 정주사람들은 또 오봉산(五峰山) 밑에 사당을 세워 7의사를 모셨는데, 왕은 ‘表節’이라는 현판을 내렸다. 시호는 충렬(忠烈)이다.