승병장 영규(靈圭)가 거느린 승군과 합세해 8월 1일 청주성을 수복한 조헌의 의병은 근왕(勤王: 싸움에서 군사가 임금을 위해 충성을 다하는 일)을 결의하고, 북행길에 올랐다. 충청도 아산에 이르렀을 때, 충청도순찰사 윤국형(尹國馨)의 권유로, 때마침 금산을 점거하고 이어 호남 지방을 침범하려는 고바야카와(小早隆景)의 왜군을 무찌르기 위해 공주로 돌아왔다.
그러나 순찰사는 조헌의 전공을 시기해 직권으로 의병의 부모와 처자를 잡아 가두는 등 갖은 수단으로 방해하였다. 이에 의병은 뿔뿔이 흩어지고 다만 700명 가량의 의사(義士)만이 끝까지 남아 생사를 같이 하기를 원했다. 이 보다 앞서 전라도 의병장 고경명(高敬命)은 금산에서 전사하고, 남평현감(南平縣監) 한순(韓楯)의 군사 500명도 패퇴, 전사하였다.
8월 16일에 조헌은 할 수 없이 남은 의병을 이끌고 금산으로 떠났다. 이 때 별장 이산겸(李山謙)이 수백명의 군사를 거느리고 금산에서 패배해 후퇴해오면서 “왜군은 정예대군이라 오합지중(烏合之衆)으로는 대적할 수 없다”고 했다. 그러나 조헌은 “국왕이 당하는 판에 신하가 어찌 목숨을 아끼랴” 하면서 그의 만류를 거절하였다.
또, 전라도관찰사 권율(權慄)과 공주목사 허욱(許頊)도 조헌의 위험을 무릅쓴 전투를 말리면서 기일을 정해 함께 협공하자고 제의하였다. 그러나 조헌은 오히려 그들의 머뭇거림을 분하게 여기며 700명만을 거느리고 고개를 넘었다.
조헌은 승병장 영규에게 글을 보내 다시 승군과 합세해서 8월 18일 새벽 진군해서 금산성 밖 10리 지점에 진을 치고 관군의 지원을 기다렸다. 한편, 성내의 왜군은 우리 군사의 후속 부대가 없는 것을 정탐하고는 복병을 내어 퇴로를 막은 다음, 모든 군사를 나누어 교대로 공격해왔다.
조헌은 명령을 내려 “한 번의 죽음이 있을 뿐 ‘의(義)’에 부끄럼이 없게 하라” 하고 힘껏 싸워 왜군의 세 차례 공격을 모두 물리쳤으나, 온종일의 싸움에 화살이 다 떨어져 더 싸울 수가 없었다. 왜군이 일제공격을 감행해 장막 안으로 돌입하니 의병은 육박전을 벌여 한 명의 도망자도 없이 모두 순절했고, 영규의 승군도 모두 전사하였다.
한편, 이 싸움에서 왜군도 죽은 자가 많아 3일간 그 시체를 거두어 불태우고, 무주와 옥천에 집결해 있던 왜병과 함께 퇴각해버렸다. 이로써 호남·호서 지방이 안전하게 되었으며 나라를 회복하는 하나의 계기가 마련되었다.
이 해 9월 왜군이 물러간 뒤 조헌의 문인 박정량(朴廷亮)이 의사 700명의 유골을 모아 큰 무덤 한 곳에 합장하였다. 후세에 이를 ‘칠백의총(七百義塚)’이라 불렀다. 선비들이 매년 이에 시향을 받들어왔으며, 1971년 정부에서 이 지역을 성역화하였다.