明洪武十四年(公元1381年),徐達奉命修永平、界嶺等關,在此地建關設衛,因其依山襟海,故名山海關。清乾隆二年(1737年)撤衛置臨榆縣,為縣治所在地。
1948年11月為秦榆市(今秦皇島市)山海關辦事處。1949年為遼西省(現遼寧省)山海關市。1952年11月劃歸河北省。1953年撤市改山海關區,屬秦皇島市。
1996年,山海關區面積192平方千米,人口約13.9萬人,轄5個街道、3個鎮、1個鄉。區政府駐關城南路119號。
2000年第五次人口普查,山海關區常住總人口158399人,其中:南關街道23717人,東街街道9764人,西街街道16916人,路南街道30329人,船廠路街道10371人,第一關鎮17655人,石河鎮21575人,孟姜鎮18413人,渤海鄉9659人。
?年,山海關區轄5個街道、3個鎮、1個鄉:南關街道、路南街道、西大街街道、東大街街道、船廠路街道;第一關鎮、石河鎮、孟姜鎮;渤海鄉(隸屬山海關經濟技術開發區)。共有95個居員會、121個行政村。
2002年,山海關區面積192.2平方千米,人口約15.02萬人。轄5個街道、3個鎮、1個鄉,23個社區、121個行政村。區政府駐關城南路119號。
2010年第六次人口普查,山海關區常住總人口178769人,其中:南關街道28953人,東街街道5057人,西街街道19303人,路南街道33120人,船廠路街道23361人,第一關鎮18638人,石河鎮21656人,孟姜鎮17822人,渤海鄉10859人。