본래 백제의 대산현(大山縣)이었는데, 757년(경덕왕 16)한산(翰山)으로 고쳐 가림군(嘉林郡)의 영현으로 하였다. 940년(태조 23)홍산으로 고치고, 1175년(명종 5) 한산감무로 하여금 이를 겸하게 하였다.
1413년(태종 13) 현감이 파견되었고, 1895년(고종 32) 군(郡)으로 승격되었으며, 1914년 행정구역개편 때 부여군에 병합되어 홍산면이 되었다. 지명은 그 모양이 나는 기러기처럼 생긴 비홍산(飛鴻山)에서 유래하였다.
비홍함로(飛鴻含蘆)의 명당이 이곳에 있다 하였으며, 동쪽의 숙홍역(宿鴻驛)도 본래 비웅(非熊)이었는데 이 지역이 나는 기러기형국이어서 이름을 바꾼 것이다.
고려 우왕 때 왜구의 침입이 빈번하였다. 조선시대에는 동서로 비인(庇仁)·석성(石城)과, 남북으로 한산(韓山)·청양(靑陽) 등과 통하는 도로가 발달하였다. 만수산(萬壽山)에는 무량사(無量寺)·도솔암·보현사가 있었다.