본래 고구려의 땅이었는데 뒤에 발해의 영토가 되었다가 여진의 거주지가 되었다. 고려초에 신도군(信都郡, 또는 古德縣)이라 하였으며, 960년(광종 11)습홀(濕忽)에 성을 쌓고 승격시켜 가주(嘉州)라 하였다.
995년(성종 14) 방어사(防禦使)를 두고, 1221년(고종 8) 모반사건이 있었다 슬롯 꽁 머니 낮추어 무령(撫寧)이라 하였다. 1231년 몽고병을 피슬롯 꽁 머니 섬으로 옮겼다가 1261년(원종 2) 육지로 나와 태(泰)·박(博)·무(撫)·위(渭) 등의 주(州)를 모두 가산에 붙여 5성겸관(五城兼官)으로 하고 뒤에 태·무·위 등 3주를 따로 분리하고, 1371년(공민왕 20) 박주까지 완전히 분리하였다.
1413년(태종 13) 가산으로 고치고 군이 되었는데, 1802년(순조 2)에 강등슬롯 꽁 머니 현이 되었다가 1822년 다시 군으로 승격하였다. 1895년(고종 32)의주부 가산군, 1896년평안북도 가산군이 되었으며 1914년 행정구역개편으로 박천군에 병합되어 가산면이 되었다.