본래 백제의 고사부리군(古沙夫里郡)으로 후기에 5방 중 중방(中方)이 설치된 요지였다. 663년 당나라 치하에서 고사주(古四州)로 개칭하고 평왜(平倭)ㆍ대산(帶山)ㆍ벽성(辟城)ㆍ좌찬(佐贊)ㆍ순모(淳牟)의 현을 관할하였다. 757년(경덕왕 16) 고부군으로 고치고 부령(扶寧)ㆍ희안(喜安)ㆍ상질(尙質) 등을 영현(領縣)으로 하였다.
936년(태조 19) 영주(瀛州)로 개칭되고 951년(광종 2) 안남도호부(安南都護府)가 설치되었다. 995년(성종 14) 안남도호부가 낭주(朗州)로 이전되고 1019년(현종 10) 고부군으로 회복되었으며, 대산군(大山郡)과 정읍ㆍ인의(仁義)ㆍ부령ㆍ보안(保安)ㆍ상질ㆍ고창 등의 현을 임내(任內)로 관할하였다. 충렬왕 때 일시 수령(守令)이 폐지되고 영광군의 임내로 편입, 격하되었다가 곧 복구되었다.
1466년(세조 12) 지군사(知郡事)가 군수(郡守)로 바뀌었다. 임내 중 각 군ㆍ현은 고려 말과 조선 초기에 독립 고을로 분리되고 나머지는 조선 초기에 직촌(直村)이 되었다. 1895년(고종 32) 전주부 고부군, 1896년 전라북도(현, 전북특별자치도) 고부군이 되었으며, 1906년 월경지(越境地)인 부안면이 흥덕군에 이관되었다.
1914년 행정구역 개편에 따라 일부는 부안군에, 나머지는 정읍군에 분할, 병합되어 고부면이 되었다. 1995년 정읍군과 정주시가 통합되어 정읍시가 되었다.
1765년(영조 41) 옛 읍성 남쪽으로 읍이 옮겨졌고, 고려시대 전의 읍치는 동남쪽 두승산(斗升山) 기슭의 성내에 있었다. 동학농민운동의 시발지로 백산(白山)에 집결한 동학군과 정부군 사이의 격전이 황토현(黃土峴)에서 있었다.