본래 고려의 문성군(文城郡)이었는데, 939년(태조 22)에 태안주(太安州)로 고치고 983년(성종 2)에 자주방어사(慈州防禦使)라 한 뒤에 1278년(충렬왕 4) 지군사(知郡事)로 강등하였다.
그 뒤 1413년(태종 13)자산군이 되었는데, 1505년(연산군 11) 이 고을 사람이 내시(內侍) 김계경(金季敬)을 죽였으므로 군(郡)을 폐하고 이웃 읍에 나누어 예속시켰다가, 1506년(중종 1) 다시 복구하였다. 1895년(고종 32)자산군이 되었다가 1908년순천군에 병합되어 자산면이 되었다.
고려 때에 이곳은 거란과 몽고병 등의 침입이 잦았던 곳이다. 고려 태조 때 이성(泥城)을 수축하였고 조선 인조 때 자모산성(慈母山城)을 수축하여 북방경비에 대비시켰다.
교통상으로는 평양과 의주를 연결하는 대동도(大同道)의 선전역(善田驛)ㆍ도덕역(道德驛)이 있어 평양ㆍ순천ㆍ은산ㆍ성천 등지와 연결되었다. 당시에는 사원(祠院)으로서 의열사(義烈祠)가 있었다.