清代海城鎮屬興賢都。
民國時期廢都設區,屬一區,后改鎮。
1949年10月11日海城解放后,成立海城鎮工作委員會。
1950年4月,屬一區,區府駐縣警報樓。
同年6月成立海城鎮,直屬一區府。
1957年,原隸屬城關區的名東、城北、西南、中河等鄉并入海城鎮。
1958年4月,撤區并大鄉,同年9月撤鄉建人民公社,同年12月,原城關區、關新鄉、守望鄉、臺東鄉、關東鄉、赤山鄉、榮山鄉、聯河鄉、海城鎮合并成立海城人民公社。
駐址海城施厝塘。
1961年6月撤銷海城公社,新劃出海城鎮公社。
1963年又撤銷海城鎮公社,與聯河、赤山、附城、守望等公社合并為海城公社。
1964年6月,恢復海城鎮建制。
1975年2月,原蓮花山公社長埔大隊劃給海城鎮管轄。
1984年3月,部分撤區并鎮,鄰近海城、城東、蓮花山等3個區并入海城鎮,3區1鎮合并后,成立海城、城東、蓮花山3個管區。
1987年1月,縣撤區建鄉時保留海城鎮建制。
1995年9月,鎮政府從人民北路南段遷至廣富路北側。
2003年1月,經省政府同意,撤銷蓮花山鎮。
2004年12月,蓮花山鎮劃歸海城鎮管轄。