1891年6月30日,北洋官铁路局在山海关成立,提督周兰亭、直隶候补道李树堂出任管路总办,聘请英国人金达出任总工程师。是为官办铁路之始。
1892年,关内铁路修至滦县。1894年铁路修至山海关,从天津至山海关的关内铁路,至此全部完成。并继续向绥中中后所展筑。但由于中日甲午战争爆发,关东铁路被迫停工。此时,关外铁路铺轨到高岭。高桥至锦州27公里、锦州至锦县附近25公里土石方工程已经完工。
1896年京奉铁路复工,1897年修复通车到绥中。
1899年10月铁路修到锦县,年底通到沟帮子。
1900年6月,八国联军入侵中国。义和团为了阻止入侵者,破坏了许多路段的路轨和桥梁。沙俄军队趁机占领了关内外铁路的关外段,致使关外铁路工程再度中断。
1900年6月修至打虎山(今大虎山)。同时修通了沟帮子至营口82.8公里的支线铁路。
1902年10月,关外铁路复工。经反复交涉沙俄交还所占的山海关至营口间已成铁路710里,沟帮子至新民间未成路200余里,车站15处,机车26辆,客车34辆,货车582辆。此时,袁世凯任关内外铁路大臣,督修大虎山至新民路段工程,直至1903年9月,关内外铁路修至新民。此时,至奉天的距离已不足60公里。然而工程又停了下来。
1905年,京奉、安奉两条铁路通车。
1906年8月26日,日本抢修成并通车了奉天至新民轻便铁道,为日式窄轨。日俄战争结束后,经清政府多次交涉,才出钱166万日元,购回了新民至奉天段铁路,并将其窄轨改为标准轨。1907年6月29日,关内外铁路自北京永定门车站至沈阳皇姑屯车站,全长839.2公里,全线通车,并改称京奉铁路。此时的京奉铁路终点站距离奉天城还有3.9公里,因为正是这3.9公里成了难题。因为要与日本人控制的南满铁路发生交叉,日方则坚持不同意京奉铁路跨越或穿越南满铁路。
1909年9月4日,在日方的要挟下,中日两国签署了《东三省交涉五案条约》,日本得到了本应归还的营口支线的所有权,作为交换条件,日方同意“京奉铁路展至奉天城根”。
1911年9月2日,中日签订了《中日京奉铁路延长线协约》,日方同意将南满铁路提高架桥(此桥即1928年皇姑屯事件中张作霖专列被炸的皇姑屯桥)。京奉铁路由桥下经过,并由奉天铁路总局交付南满铁道株式会社补偿金2.4万日元。
1911年12月20日,这段进城的铁路完成铺轨,终点设在奉天城小西边门北1英里附近,时称奉天新站,原奉天城站改称皇姑屯站。至此,京奉铁路才真正将北京与奉天连接起来。
1912年1月1日,随着民国新纪元的开始,这条历经磨难的铁路才正式开通。
1921年开始修筑锦州至朝阳支线。
1925年至1927年间,筑成大通(大虎山至通辽)支线。
1929年夏,时任铁道部部长孙科视察北宁铁路,并支持张学良的的筑港计划.。
1930年3月19日,中国设计师杨廷宝主持设计的辽宁总站(沈阳老北站)落成。