충청남도 공주 출신. 1905년 을사조약이 강제체결되자, 1906년 홍주의진 의병대장 민종식(閔宗植)과 함께 정산(定山)에서 기의하여 종사(從事)가 되었다.
의병장 민종식과 더불어 약 1,000여명을 인솔하고 서천을 향하여 진군하여 5월 17일 남포(藍浦)를 점령할 때 의병의 수가 대단히 많아져 후기의병 중 가장 성대한 세력이 되었다. 이어 5월 19일에는 홍주성을 점령하여 부서를 재편, 강화할 때 좌익장에 임명되었다.
의진은 성을 지키기에 힘썼으며, 5월 31일 적의 대공세에 맞서서 일본경찰 부지휘관 이하 30여명을 사살하는 전과를 올렸으나, 중과부적으로 성이 함락되고 82명의 의병과 함께 일본군에 잡혀 갖은 고초를 겪었다.
6월에 70여명이 풀려났으나 이상구는 이식(李侙) 등 8명과 함께 대마도에 유배되었다가, 그해 11월 고국으로 돌아왔다.
1977년 건국포장, 1990년 애국장이 추서되었다.