京山铁路

前身

1894年，在經過不斷延長後，唐胥鐵路發展為津榆鐵路；一年後，北京-天津的津蘆鐵路也建成通車，並與津榆鐵路接軌。1897年7月31日，兩線合併為關內外鐵路，並繼續向關外延伸。1907年，待線路延長至奉天後，線路改名京奉鐵路。

形成

1932年1月7日，滿洲國方面在日方的支持下，強行控制了京奉鐵路山海關以東的區間，並派闞鐸接管負責運營的管理分局，京奉鐵路在事實上被分為兩條線路；其中，關外段更名為奉山鐵路，關內段則更名為京山鐵路。1933年，《塘沽協定》簽署後，中國政府也喪失了對京山鐵路的控制權。七七事變後，京山鐵路被滿鐵北支那事務所（華北交通前身）接管。

抗日戰爭期間

九一八事變後，為防止日本侵略軍沿鐵路進攻，國民政府先後兩次下令將秦皇島至山海關間的雙線拆除約10公里，只維持單線行車。1933年1月，日軍占領山海關，又在3、4月間占領秦皇島、北戴河一帶；隨後，日軍又強渡灤河並占領唐山、蘆台一帶，京山線天津至山海關段運輸隨之中斷，直到中日兩國在5月簽訂《塘沽協定》，日本控制了冀東及京山線後，才恢復通車。
七七事變發生時，京山鐵路已被日軍控制，故未遭到破壞。
1941年，太平洋戰爭爆發後，美英對日宣戰，開始對京山線的列車進行空襲，同時中共游擊隊和沿線居民也開始拆毀鐵路。日方為減輕同盟國空軍對機車的襲擊，在機車司機篷上加裝了防彈水泥板，還在沿線各站修建防空牆——即在適當地點的線路兩側，各建一面高於機車、略長於機車的高牆，使機車在遇空襲時停在牆內，以防飛機上機關炮的射擊。同時，為防止抗日力量的襲擊，日方在各中間站及沿線兩側各挖一道深約5米、寬約4米的防護溝，以阻礙他人接近。

國共內戰期間

日本投降後，國民政府接收了京山線。該線最初能夠通車，1946年時還能開行北平至瀋陽間的直通旅客快車。隨著內戰擴大，解放區軍民開始毀壞線路。1947年以後，唐山至秦皇島區間幾乎每月有大的破襲，形成「夜間扒鐵路，日間修鐵路」的局面。客車只剩下短途車次，且只能在白天運行，貨車也只能在夜間偶爾行駛。為防止機車觸雷，機車必須低速運行，而且前方會加掛四、五輛貨車。國軍為搶修線路，將新河-金溪河與小莊-裴莊間的33.7公里雙線改為單線。
1948年11月，國軍在遼瀋戰役中失利；為保住平津，國軍在11月20日炸毀了兩座灤河大橋，又在12月13日炸毀金溪河大橋。除了兩座重要的大橋，戰爭中一共有23座橋樑被破壞，占全線橋樑數的8.2%，被毀橋樑面積達到2.5延長公里，占全線橋樑總延長米數的36％。線路也遭到不同程度的破壞；其中北京至天津間的線路被國軍挖溝、布雷，不能使用；魏善莊至山海關間有10個區間115.28公里線路大部分鋼軌、軌枕毀損；雙線區間僅剩下唐山至卑家店間30公里；另外，不少站房和職工住房也毀於戰火。
在解放軍鐵道縱隊、唐山工務段和山海關橋樑廠的搶修下，第一座灤河大橋先於1949年1月被修復，原先廢棄的金溪河老橋在加固後也重新投入運營，保證了解放軍進攻平津地區時的後勤支援。在北平和平解放後，京山鐵路被和平移交給共產黨。之後，鐵道兵團展開了對京山鐵路的全面修復。
為儘早恢復通車，鐵道兵團在2月開始修復第二座灤河大橋，並於5月恢復通車；12月29日，金溪河大橋修復通車。被破壞的線路也在1949年2月之前陸續修復通車。截至1949年9月底，京山線的幹線424.083公里、站線473.782公里全部恢復通車，支線36.033公里中有18.781公里通車。經搶修後，京山鐵路幹線的運行時速在北平至天津間為80公里/小時，天津至山海關間為65公里/小時，但正線中有17處限速地段，其中金溪河橋限速5公里/小時。

中華人民共和國時期

唐山大地震後，京山鐵路共有403公里區間受損，63座橋樑被毀。在5萬多名鐵路職工、鐵道兵指戰員的連夜搶修下，鐵路於1976年8月7日晚上恢復通車，使第一列救災列車成功到達。
從1974年開始，開灤礦務局就提議遷建京山鐵路的正線，使鐵路的運輸和煤礦的開採都能得到保證，但鐵道部卻因擔心成本增加而抵制此提議。為配合唐山市震後的復建，以及開灤煤礦提高產量的計劃，國務院批准了相關建議，工程在1979年啟動，但又在1981年被擱置。又過了5年，工程重新上馬，並在1994年11月投入使用。

震後搶修

1976年7月28日早上6時，在地震剛剛停下幾小時後，在唐山施工的北京鐵路建設集團的40名職工便開始查找和修復電話線路，並於當天16時恢復了第一條北京至唐山的電話線路。8月12日，北塘-茶淀區間恢復通車，允許速度50公里/小時；至9月底，共有158公里的線路恢復通車，其中52公里線路恢復正常時速。同時被修復的還有32公里的專用鐵路。除了軌道，北京鐵建集團也修復了不少通信和信號設備，包括152公里的電纜、唐山-古冶區間45公里通訊線路，以及一些車站的信號設備，以進一步恢復鐵路的運輸能力。

分拆

自2007年1月1日起，京山鐵路北京-天津段被劃入京滬鐵路，而天津-山海關段則更名為津山鐵路。

複線建設

日軍占領華北後，唐山-山海關區間已建成雙線，而北平-唐山間尚為單線。為擴大運輸能力，從1941年起，華北交通株式會社陸續建成了一些複線區間，還在一些區間完成了為二線工程做準備的土石方和橋樑工程。至1945年8月日本投降時，尚有4個區段、72.78公里為單線。
1949年初，京山線搶修通車後，全線複線幾乎都被拆除。自1949年底至1954年，京山線恢復和新建二線共210.5公里，架橋200餘孔，工程費用1900萬元。

電氣化

2001年8月25日，京秦客運通道提速改造工程開工，並於2003年7月1日全線交付使用；該工程包括京秦線北京-狼窩鋪段提速改造工程和京山線狼窩鋪-灤縣-秦皇島段電氣化改造工程，其中117.8公里區間為提速200公里/小時。
2005年7月，中鐵電氣化局成立了京滬線電氣化工程指揮部，在2006年6月完成了北京-上海區間（包括本線北京-天津區間）的電氣化建設，並於同年7月1日啟用電氣化設備。
2005年5月18日，天津-秦皇島-瀋陽區間電氣化改造工程開工。此次工程的任務包括在天津樞紐北環線、塘沽站至新港站進港二線、天津站東咽喉至唐山站區間新建電氣化設備，以及更新京秦鐵路唐山北至北京-瀋陽兩局界間的電氣化設備。2007年8月1日，電氣化設備送電開通。此次工程共架設接觸網694條公里，新建牽引變電所4座、開閉所3座、分區所3座，鋪設高壓電纜32公里、低壓電纜250.37公里，還新建房屋1.6萬平方米。

改線

京山鐵路曾多次改線。

塘沽改線

1943年，日方新建了長3.2公里的曲線連接新河站（今塘沽站）和海灘信號所（今北塘站），使京山鐵路上的列車不再繞行至環形迴車道，縮短了5公里的路程；原先連接新河站和塘沽站（現塘沽南站）的線路則改為塘沽支線，而原塘沽站則不再屬於京山鐵路正線。

北京新站

1959年10月，作為國慶十周年獻禮的北京站投入使用，並成為了北京市新的樞紐客運站和京山鐵路新的終點；服務了約50年的正陽門東站、東便門站退出運營，而原先的區間則被拆除。

背景

根據開灤礦務局提供資料，京山鐵路胥各莊至卑家店區間經過開平煤田，鐵路下壓煤7億噸。早在1907年，由於礦務局盲目開採煤礦，京奉鐵路發生地陷，老唐山站也因此搬遷。自1980年代起，由於開灤煤礦不斷開挖，煤礦附近的地下出現巨大的空洞，七道橋-灤縣區間部分路基下沉，嚴重影響鐵路運營。為利用地下資源，同時保證京山鐵路幹線的運輸，該局在1973至1974年間曾多次向國家計委、建委、燃料化學工業部和鐵道部提出改線報告。在唐山大地震前，燃化部和接替者煤炭工業部一直在改線問題上與鐵道部意見相左；煤炭工業部認為鐵路阻礙了煤炭開採，鐵道部認為改線會增加里程和運費。
1974年12月，鐵道部第三勘測設計院編制了《京山線唐山地區壓煤改線方案研究報告》。唐山大地震發生後，國務院結合唐山市重建和開灤煤礦產量翻番的規劃，下令將本線經過煤田的區間改道。根據指示，鐵三院又重新開展了研究，並於1977年4月至7月完成初測，10月完成初步設計。在1979年3月至11月期間，鐵三院在邊勘測、邊設計、邊施工的情況下，向施工單位陸續提供施工資料。1979年3月至6月，鐵三院開始定測，並在12月完成除灤縣站以外的施工設計文件；隨後，鐵三院將這些文件一併交給鐵道部第一工程局施工。

動工

1979年，鐵道部第一工程局開始施工。1981年，國家將該工程列為緩建項目，工程停止施工。2年後，國家計委發出《關於京山線鐵路壓煤改線工程恢復建設問題的函》，並要求鐵道部按現已核實的有關工礦企業規劃，對原設計的站場、房建規模偏大部分進行修正；同時，根據國家計委批示，為配合京秦鐵路的建設，狼窩鋪-坨子頭段複線工程重新開工。隨後，狼窩鋪-灤縣段在1984年底即完成複線建設，鐵三院於1984年1月至9月間修改了初步設計，於1986年1月完成全線復工勘測，並於1987年3月完成修改施工設計。
1986年9月，鐵道部下令重啟京山鐵路壓煤改線項目，北京局為改線工程的建設單位，並要求3年內建成。從1987年起，鐵三院陸續提交了多份新的施工圖和可行性報告。

完成

至1990年底，改線工程已基本完成，並於1994年11月投入運營，1996年底完成固定資產移交。整個工程造價為7.82億元，平均每公里造價約885萬元。工程的合格率為100%，優良率為90%，設計和施工質量總評為優良。
1996年6月28日，當最後一趟旅客列車離開了老唐山火車站後，七道橋-胥各莊-灤縣區間變為了京山鐵路七灤支線，而新建的七道橋-狼窩鋪站-灤縣區間成為了新的正線區間，不再經過唐山市區。