北宋太平興國三年(978)屬長山鄉(xiāng);元至元十六年(1279)為十一、十二都部分;清宣統(tǒng)二年(1910)設河上鄉(xiāng);1932年為河上鎮(zhèn),屬第三區(qū);1939年,屬戴村區(qū);1940年1月,日軍侵占城廂鎮(zhèn),縣政府撤至河上鎮(zhèn),至1945年8月,日軍宣布投降,縣政府遷回城廂鎮(zhèn);1947年,鄉(xiāng)鎮(zhèn)編并后,仍為河上鎮(zhèn)。
1949年5月蕭山解放,建立人民政權(quán),為河上區(qū)駐地;1950年10月設河上鎮(zhèn)及青山、大山、白堰、紫霞等鄉(xiāng);1954年5月經(jīng)省民政廳批準為建制鎮(zhèn);1956年為河上鄉(xiāng)、紫霞鄉(xiāng);1958年為河上公社河上、紫霞管理區(qū);1959年增設白堰管理區(qū);1961年縮小公社的行政區(qū)域并撤銷管理區(qū),河上管理區(qū)改為河上公社,紫霞管理區(qū)改為大橋公社,并將白堰管理區(qū)并入大橋公社,河上、大橋公社均屬河上區(qū);1969年大橋公社南片并入河上公社,北片并入戴村公社;1971年2月原大橋公社部分從河上、戴村公社劃出,恢復大橋公社;1984年5月,河上公社改為河上鄉(xiāng),大橋公社改為大橋鄉(xiāng);1985年8月,經(jīng)省民政廳批準河上鄉(xiāng)改為河上鎮(zhèn);1992年5月,大橋鄉(xiāng)并入河上鎮(zhèn),其行政區(qū)劃和名稱沿用至今。