본래 백제의 두내지현(豆奈只縣, 또는 豆乃山縣)이었는데, 663년 당나라 치하에서 순모(淳牟)로 고치어 고사주(古四州: 지금의 古阜)의 영현으로 하였다. 757년(경덕왕 16) 만경으로 이름을 바꾸어 전주도독부 관내 김제군의 영현이 되었고, 한때 후백제에 속하기도 하였다.
고려시대에는 전주도 관내 임피현(臨陂縣)의 속현이었으나, 1106년(예종 1) 감무를 두어 현으로 승격시켰다. 이때에 임피현의 임내이던 부윤(富潤: 지금의 성덕면)과 이파산소(泥波山所: 지금의 건봉면)를 편입시켰다. 고려 말기에는 왜구의 침입이 잦았으며, 조선 초기에는 길곶산(吉串山)에 봉수를 설치하여 계화(界火)ㆍ사자산(獅子山)과 연결시켰다.
1620년(광해군 12) 혹심한 흉년으로 주민의 수가 격감하자 현이 폐지되어 김제군에 병합되었고, 2년 뒤 전주부에 이속되었다가 1634년(인조 12) 복구되었다. 1895년(고종 32) 군이 되어 전주부에 속하였다가 이듬해 전라북도에 예속되었다. 1906년 전주군의 월경지(越境地)인 이동면(利東面)ㆍ이북면(利北面)ㆍ이서면(利西面)을 편입시켰다.
1914년 행정구역 개편 때 고군산군도를 옥구군에, 나머지는 김제군에 분할, 병합하였다. 지금의 만경면ㆍ진봉면ㆍ성덕면 지역으로 추정되며, 1995년 김제군과 김제시가 통합되어 새로운 시로 되었다.
만경강과 동진강 사이의 비옥한 퇴적평야는 예로부터 능제호(陵堤湖)에 의한 관개농업이 발달하였고 길곶(吉串)은 이름난 염소(鹽所)였다. 군산도(群山島)는 고려 때부터 조선(漕船)과 중국 무역선의 기항지로 번영하였고, 군사적으로 중요하여 진이 설치되어 있었다. 조선 초기에 진이 진포(鎭浦: 지금의 군산)로 옮겨갔으나 1624년 다시 고군산진이 설치되고, 1677년(숙종 3) 그 별장이 구군첨절제사로 승격되었으며, 1801년(순조 1) 행정상 독립적인 독진(獨鎭)으로 분리되었다.