본래 고구려의 식성군(息城郡)이었는데, 신라 경덕왕 때중반군(重盤郡)으로 고쳤다. 고려 태조 때팽원군(彭原郡)으로 고쳤으며, 931년(태조 14) 안북부(安北府)를 설치하였고, 983년(성종 2)영주안북대도호부(寧州安北大都護府)라고 칭하였다.
1018년(현종 9)안북대도호부로 바꾸었고, 의종 때 도절제사(都節制使)를 두었다가 곧 파하였다. 1256년(고종 43) 몽고병을 피하여 창린도(昌麟島)로 들어갔다가 뒤에 복귀하였다.
1269년(원종 10) 원나라가 차지하여 동녕로총관부(東寧路摠管府)에 들었고, 1278년(충렬왕 4) 고려의 땅이 되었다. 1369년(공민왕 18)안주만호부(安州萬戶府)를 두었다가 뒤에 목(牧)으로 승격시켰다.
이곳은 청천강 하류의 의주와 평양을 잇는 길목에 있어 고구려 때 을지문덕(乙支文德)이 수나라 군사를 격퇴한 곳이며, 1015년(현종 6) 거란병이 영주성(寧州城)을 공격하였을 때 이를 물리친 곳이기도 하다.