원래 고구려의 매홀군(買忽郡)이었는데, 신라 경덕왕 때 수성군(水城郡)으로 고쳤다. 940년(태조 23) 고려 태조가 남쪽을 정벌할 때 군민 김칠(金七)ㆍ최승규(崔承珪) 등 200명이 귀순하여 공을 세웠으므로 수주로 승격시켰고 안산현(安山縣)을 비롯한 7개 현이 소속되었다.
995년(성종 14) 단련사(團練使)를 두었으나 1005년(목종 8) 혁파되었다. 1018년(현종 9) 지수주사(知水州事)를 두어 격상시켰다. 1271년(원종 12) 대부도(大阜島)에 몽고병이 쳐들어오자 도민들이 그들을 죽이고 반란을 일으켰으므로 부사 안열(安悅)을 시켜 이를 평정하였는데, 그 공으로 수원도호부(水原都護府)로 승격되었다.
얼마 가지 않아 다시 수원목으로 격상되었다가 1310년(충선왕 2) 전국의 목을 정리할 때 다시 수원부로 격하되었다. 1362년(공민왕 11) 홍건적 침입사건으로 다시 수원군으로 격하되었으나 군민의 노력으로 복구되었다. 1413년(태종 13) 도호부가 되었고 그 뒤 군ㆍ도호부ㆍ유수부 등을 거쳤다.