백제 때 난등량(難等良)이라고 하였고, 757년(경덕왕 16) 고산으로 고쳐 전주도독부 관내 전주의 영현(領縣)이 되었다. 고려시대에는 그대로 전주목의 임내(任內)였으나, 1390년(공양왕 2) 감무관(監務官)을 두어 독립시켰다. 이때 진례(進禮)의 진동현(珍同縣), 전주의 운제현(雲梯縣)을 함께 다스렸다.
1392년(태조 1) 운제현이 속현으로 바뀌었고, 이듬해 진동현이 분리되었으며, 1413년(태종 13) 감무가 현감으로 바뀌었다. 1895년(고종 32) 고산군이 되었고, 1906년 운북면(雲北面)이 충청남도 연산군에 이속되고 전주군의 월경지(越境地)인 양량소면(陽良所面)의 일부가 편입되었다. 1914년 행정구역 개편 때 전주군에 병합되었으며, 1949년에 전주가 시로 승격됨에 따라 완주군에 편입되었다.
관내에 철장(鐵場) · 옥포역(玉包驛) · 화암사(花巖寺)가 있었다. 용계성(龍雞城)은 동쪽의 탄현(炭峴)을 지키려고 백제가 옛 진동성과 함께 쌓은 것이라고 한다.