본래 신라의 굴산현(屈山縣)이었는데, 757년(경덕왕 16)기산(耆山)으로 고쳐져 삼년군(三年郡 : 지금의 보은군)의 영현(領縣)이 되었다. 940년(태조 23)청산으로 고쳐져 상주에 속하였다가, 1353년(공민왕 2)에 감무(監務)를 두었고, 상주의 주성부곡(酒城部曲)을 떼어서 이에 예속시켰다.
1362년 다시 상주에 속하였다. 1403년(태종 3) 다시 감무를 두었다. 1414년에는 황간과 합하여 황청현(黃靑縣)이라 하고, 1416년에 분리하여 다시 청산이라 고치고 현감을 두었다. 1895년(고종 32) 군(郡)으로 승격하였고, 1914년 행정구역개편 때 옥천군에 합하여 청산면이 되었다.
조선시대에는 소백산맥 서사면의 산간분지에 자리잡고 있었으며 현의 중앙을 남천(南川)이 북쪽에서 남류하여 금강에 합류하였다. 신라의 소지왕이 개축하였다는 저점산성(猪岾山城)이 있었다.
당시에는 동쪽으로 소백산맥의 웅현(熊峴)을 넘어 상주와 서로 연결되었고 북쪽으로 보은, 서쪽으로 옥천과 이어지는 도로가 발달하였다.