옛 명칭은 매성(妹城) 또는 이균성(伊均城)이었는데, 989년(성종 8) 성(城)을 쌓고 문주로 칭하여 방어사(防禦使)를 두었으며 동계(東界)에 예속시켰다. 뒤에 의주(宜州)에 합쳤고, 1345년(충목왕 1) 이를 다시 나누어 지문주사(知文州事)로 하였다. 1413년(태종 13)문천군으로 바꾸었으며, 치소(治所)를 동쪽의 아미산(峨眉山) 부근으로 옮겼다.
아미산 동쪽의 차파령(車破嶺)에는 고산성(古山城)이 있고, 조선시대에는 부근에 양기역(良驥驛)이 있었으며, 북쪽의 천달산(天達山)에는 봉수가 있어 남쪽의 소달산(所達山) 봉수와 연결되었고, 서남쪽의 노달령(蘆達嶺)을 넘어 금강산에 이르게 된다. 고려시대 몽고병의 침입이 있었고, 북부의 국경요새로서 군사적인 시설이 많았다.