京山铁路

前身

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日，当最后一趟旅客列车离开了老唐山火车站后，七道桥-胥各庄-滦县区间变为了京山铁路七滦支线，而新建的七道桥-狼窝铺站-滦县区间成为了新的正线区间，不再经过唐山市区。