1895년 명성황후시해사건과 단발령에 격분한 유생들이 전국 각처에서 의병을 일으키기 시작하였다. 경상도의 경우에도 안동의 권세연(權世淵)·김도화(金道和), 진주의 노응규(盧應奎) 등이 의병진을 결성하고 남북에서 위세를 떨치며 대일항전을 전개하였다.
이러한 의병활동에 고무되어 경상북도 서북부 지역인 상주·선산·성주·김산 등지의 양반 유생들도 의병을 일으키기로 뜻을 모으고 기회를 보고 있었다. 1895년 12월 김산에서 유생 여영소(呂永韶) 등이 통문을 돌리고 의병을 일으킬 작정이었으나 호응하는 이가 없어 실패하고 말았다.
그러나 곧이어 1896년 정월 안동의진과 진주의진에서 발해진 창의격문에 자극받은 김산 지방은 재차 의병을 일으킬 준비를 하기 시작하였다. 한편, 상주·선산 등 주변 지역에서도 양반 유생들이 의병을 일으키려다가 실패하고 김산군으로 들어오게 되었다.
그 결과 연합의진으로 결성된 김산의진은 이기찬(李起燦)을 대장으로 추대하고, 중군에 김기력(金基櫟), 찬획(贊劃)에 조동석(趙東奭)·이용주(李龍周)·강일선(姜馹善)·허겸(許蒹)·이능규(李能圭)·이상설(李相卨)·여중룡(呂中龍), 군관에 강무형(姜懋馨)·이기하(李起夏), 종사에 이숭주(李崇周)·최동은(崔東殷), 참모에 허위(許蔿)·여영소, 군량도감에 조석영(曺奭永)·여승동(呂承東)·이현삼(李鉉參)· 조남식(趙南軾), 장재관(掌財官)에 배헌(裵憲)·강명숙(姜明叔)·박래환(朴來煥) 등으로 진용을 편성하였다.
이들은 김산향교에서 우선 군례(軍禮)를 행하고 ‘金山倡義大將(김산창의대장)’이라 쓴 대장기를 앞세우고 그 진용을 정비하였다. 그리고 김천장날 읍으로 들어가 수백 명의 장병을 모집하였고, 김산군의 무기고를 습격해 무장하는 등 진용의 정비와 군비를 확충하였다.
김산의진은 군량을 모으고 장병을 모집하며 계속해서 대구부를 향해 진격, 3월 14일 대구에서 파송된 감영군과 지례에서 최초로 접전하였다. 그러나 전투다운 전투도 해보지 못하고 패퇴, 각처로 흩어지고 말았다.
그 뒤 김산의진은 3월 25일여영소·허위 등이 직지사(直指寺)에 모여 상주·선산 등지로 통문을 돌리며 재차 부대를 편성, 수일 동안 군량과 병사를 모집하여 흩어졌던 포군 100여 명과 유생 80여 명을 모으게 되었다.
의병진은 직지사에서 황계(黃溪)로 이동하여 강태목(姜泰穆)·김기락 등과 합세하고, 마산점(馬山店)에서는 유인목(柳寅睦)과 합세하였다.
의진은 각처를 전전하다 4월 3일 주둔지로 적합한 지례의 홍심동(紅深洞)으로 들어갔다. 4월 5일 대구에서 파송된 감영군이 구성(龜城)에 도착했다는 소식을 들은 의진은 대장 이기찬이 거느린 수백 명과 중군 양제안(梁濟安)이 거느린 100여 명을 주축으로 대오를 형성하고 구성면도곡촌(道谷村)에서 관군과 접전하였다.
그러나 의진의 군율은 시행조차 되지 않았고, 훈련되지 않은 사졸들은 대오조차 갖출 수 없는 상태여서, 관군이 몇 차례 포격하자마자 괴멸하여 흩어지고 말았다.
다시 홍심동으로 돌아온 의진은 무주로 진을 옮기기로 하고, 영동을 거쳐 황간에 도착, 참모회의를 열었다. 이 회의에서 청나라에 원병을 청함과 동시에 당시 호서 지방에서 활동하던 유인석(柳麟錫)과 합세하기로 결정하였다.
이리하여 허위 등은 진천 방면으로 나아가고, 이기찬·양제안 ·조동석 등은 관군과 접전을 계속하며 상주 중모(中牟)를 거쳐 충청도 청산·보은·괴산·청주 등지를 거쳐 음성에서 유인석·정인석(鄭寅錫) 등과 합세하였다.
한편, 의진 지도부는 청국청원신사단(淸國請援紳士團)을 조직하고, 이화영(李華榮)·이병구(李炳九)·임병주(林炳疇)·김두찬(金斗燦)·최순정(崔舜貞)·안치수(安致洙)·이응호(李應鎬)·김녹상(金祿祥) 등을 파견하였다. 이들은 4월 초 예천을 출발해 5월 초 의주에 도착했으나, 모두 붙잡혀 서울로 압송됨으로써 김산의진은 끝나게 되었다.