본래 고려의 운주(運州)로 995년(성종 14) 도단련사(都團練使)를 두었고, 1012년(현종 3) 지주사(知州事)로 고쳤다가 뒤에 홍주로 개칭하였다.1358년(공민왕 7) 왕사(王師) 보우(普愚)의 고향이라 하여 목으로 승격되었다.
1368년 지주사로 강등되고, 1371년 다시 목이 되었다. 조선시대에도 그대로 인습되었고, 세조 때 진(鎭)을 두었다. 현종때에는 홍양현(洪陽縣)으로 강등되기도 하였다. 1895년(고종 32) 군이 되었다가 1914년 행정구역개편 때 홍성군에 병합되었다.
660년(태종무열왕 7) 나당연합군이 이곳의 사라지정(沙羅之停, 또는 麗陽)에 집결하여 백제군과 싸웠다. 문무왕 때는 복신(福信)과 왕자 풍(豊) 등이 백제의 부흥을 위하여 홍주의 읍성인 주류성(周留城)에서 나당연합군에 저항하기도 하였다.
또한, 고려태조인 왕건(王建)이 이곳에서 견훤(甄萱)과 치열한 전투를 벌이기도 하였다. 고려 원종 때는 안면도 남쪽 고도도(古道島)에 삼별초가 잠시 웅거하였다. 고려 말에 왜구의 침입이 잦았고, 1803년(순조 3)에는 영국 상선이 무역차 이곳에 상륙하였던 적도 있다.
군사적으로 중요한 곳이라 하여 조선시대에는 충청도의 5개 진관(鎭管) 중 하나로 홍주진관을 설치하여 목사가 겸임하는 첨절제사(僉節制使)가 4군 12현을 관할하였다.
천수만 남쪽의 원산도(元山島)는 삼남지방의 세곡선이 모이는 곳으로, 3월에서 9월까지는 수군우후(水軍虞候)가 이곳을 방어하였다. 간월도(看月島)는 예로부터 굴의 산지로 널리 알려졌다.