원래 고구려의 주부토군(主夫吐郡)이었는데, 신라의 영역이 된 뒤 경덕왕 때 장제군(長堤郡)이라 개명하였다. 고려초 수주(樹州)로 고쳤고, 995년(성종 14) 단련사(團練使)를 두었으며, 1018년(현종 9) 지수주사(知樹州事)를 두어 격을 높였다.
1150년(의종 4) 안남도호부(安南都護府)로 격상시키고 6개 현이 소속되었다. 안남은 아마도 계양산(桂陽山)의 별칭 안남산(安南山)에서 유래된 것 같다. 고종이 즉위하자 계양도호부(桂陽都護府)로 개칭하였다가, 충렬왕 때 다시 길주목(吉州牧)으로 고쳐 격상시켰으며, 충선왕 때 부평부(富平府)로 개칭하였다.
1413년(태종 13) 부평도호부로 된 뒤 약 500년간 큰 변동은 없었다. 1914년 행정구역개편 때 부평군, 인천부의 일부, 남양군의 여러 도서 등을 합쳐 부천군(富川郡)이 되었고, 1973년 군이 폐지되면서 시로 승격되었다.