본관은 남평(南平). 자는 이필(而弼), 호는 의산(義山). 대구 출신. 아버지 문하규(文夏奎)로부터 한학을 수학하였다.
1893년 별시무과에 병과로 급제, 경복궁 오위장에 특제되었으며, 그 해 12월 공주부 진잠(鎭岑)현감으로 부임하였다.
1894년 11월 양호소모사(兩湖召募使)로 임명되어 동학농민군을 진압하는 데 공을 세웠다. 이 일로 연산·은진 등 공주부 내 6읍의 사민들이 송덕비를 세워 주기까지 하였다. 이 지역 유생들과의 이와 같은 관계가 훗날 경상도 출신인 문석봉이 진잠을 비롯한 유성·회덕 등지에서 의병활동을 전개할 수 있는 기반이 되었다.
갑오경장 이후 개화정권에 의해 취해진 변복령과 단발령 등 제도의 개편을 반대했으며, 일제의 침략 행위를 물리치고자 항일의병을 일으켰다. 문석봉의 의병활동은 2차에 걸쳐 준비, 수행되었다.
1차 의병활동은 문석봉이 붙잡힘으로써 실천에 옮겨지지는 못하였으나, 1895년 2월경 무기를 준비하는 등 의병투쟁의 준비단계로서 의의가 있다.
2차 의병활동은 을미사변 직후에 시작되었다. 1895년 9월 18일 ‘국수보복(國讐報復)’의 기치를 들고 충청도 유성에서 유성의진을 결성, 항일투쟁에 나섰다. 선봉장에 김문주(金文柱), 중군장에 오형덕(吳亨德), 군향관에 송도순(宋道淳)을 임명하였다. 유성의진의 병사수는 1,000여 명에 달하였던 것으로 보인다.
먼저 회덕과 진잠에 거주하던 송근수(宋近洙)와 신응조(申應朝) 등 전임 정승들이 뜻을 같이하여, 이들의 묵인하에 회덕군아의 무기고를 급습, 병사들을 무장시켰다.
이어 진잠을 거쳐 공주부 관아를 점령하고자 진격했는데, 병법에 능한 무과 출신이고 전투지휘 경험이 있는 무장이었지만, 관군과 일본군 연합부대와의 전투에서 다수의 사상자를 내고 경상도 지역으로 패퇴할 수밖에 없었다.
이어 오형덕 등과 고령·초계 등지에서 재기를 도모했으나 고령현감의 밀고로, 1895년 11월 대구감옥에 갇히고 말았다. 1896년 초 동지들과 감옥을 부수고 나와 원주 일대에서 통문을 돌리며 전국적인 의병봉기를 독려하였다. 그러나 옥고를 치르며 얻은 병으로 그 해 5월 낙향하였고, 결국 11월에 죽었다.
문석봉의 의병활동은 을미의병의 기점으로서, 단발령 직후 전개되는 반일의병투쟁의 촉발제 구실을 수행했다는 점에서 그 의의를 찾을 수 있다.
문석봉이 남긴 기록으로 『의산수록(義山隨錄)』 2책이 전해 오고 있으며, 1934년 이를 저본으로 후손들이 간행한 『의산유고(義山遺稿)』 2책이 있다.
1993년 건국훈장 독립장이 추서되었다.