자는 유성(有聲), 호는 후은(後隱). 전라남도 영광 출신. 기우만(奇宇萬)의 문인이다.
1905년 소위 을사조약이 강제 체결되자, 1906년 봄부터 기삼연(奇參衍)과 내왕하며, 의병을 일으켜 적을 토벌할 것을 계획하였다. 이에 동지를 모아 일심계(一心契)를 맺어 구체적인 실천 방안을 논의하였다.
1907년 8월 8일 영광 수록산(隨綠山) 석수승암에서 의병을 일으키자, 11일 김형식(金炯植)·박용근(朴溶根) 등 의병 100명이 모여들었다. 9월 6일 적 20명과 연곡사(蓮谷寺)에서 접전하여 10여 명을 포살하였다. 그리고 9월 24일 장성에서 대오를 정비하고 호남창의맹소(湖南倡義盟所)를 구성하여 기우만을 맹주로 추대, 도통령(都統領)이 되어 장성·함평·영광·고창 등지에서 교전하였다.
1907년 12월 중순 선운사(禪雲寺)에서 머무를 때 외아들 김기봉(金起鳳)이 합류하였는데, 13일 흥덕 안치(安峙)에서 벌여진 전투에서 김기봉이 전사하였다. 28일 대장 기삼연의 발 부상으로 순창에서 군통수권을 위임받았는데, 며칠 뒤 기삼연은 붙잡혀 총살되었다.
1908년 1월 19일 탑정리에서 머무르던 중 적의 기습을 받아 많은 사상자가 발생하고. 탄환이 부족하여 다내동으로 철수하였다. 2월 19일 고창 읍내로 들어가 세무 주사 서상달(徐相達)을 사살하였으며, 24일 장성 송치(松峙)에서 적 10여 명을 사살하였다.
같은 해 3월 8일 구수산(九岫山)에서 적의 기병·보병 등 40여 명을 사살하였다. 그리고 23일 대덕리에서, 4월 11일에는 무장 선운사에서 접전하였으며, 17일 무장 와공면에서 머무르던 중 적의 기습에 맞서 수십 명을 사살하였으나, 총상을 입고 고산으로 후퇴하여, 18일 방장산(方丈山)에 머물렀다.
그러나 정신이 계속 혼미하자, 군통수권을 박도경(朴道京)에게 위임한 뒤 장성 백암산(白巖山)에서 3∼4년 동안 부상을 치료하였다. 그 뒤 1911년 봄 이후로 금산에 은신하며 기회를 엿보았으나, 뜻을 이루지 못했다.
1968년 독립장이 추서되었다. 많은 문헌 중에서 의병 활동에 관한 『의소일기(義所日記)』만 전하며, 『독립운동사자료집』 1에 수록되어 있다.