1899年前后,山海关内外铁路总工程师英国人金达草测了北京到张家口的铁路。这引起了英国和俄国对内蒙古地区的控制权的争夺。俄国向清政府要求建造北京到张家口的铁路,但未被清政府允许。1899年6月1日,俄国强迫清政府答应北京以北或东北地区修建铁路。
八国联军侵华后,清政府与英国签订两个关于关内外铁路的章程,之后由于俄国和法国对章程提出交涉,最终确定北京以北的各条支路,和北京至张家口的铁路均只得由中资修建,外资不得介入,修建完成的铁路及其收入不得抵押给外国。
1903年,商人李明和以及李春向铁路矿物总局提请修筑北京张家口的铁路,因二人均无法如实报告自己的资金多少和资金来源,最终二人的提请均被清政府驳回。当年9月,御史瑞琛提议商办京张铁路,该提议再次被驳回。鉴于以上提请的出现,清德宗下令官办京张铁路,民间不得再提出任何商办的请求。
1905年,直隶总督袁世凯和会办大臣胡燏棻奏准筹办京张铁路,预算经费500万两白银,预计耗时4年,并由关内外铁路的盈余中每年提100万两白银投入建设,盈余提取之后从庚子赔款中补偿80万两给关内外铁路,该奏本于当年2月批复同意。1905年5月初,清政府任命陈昭常为京张铁路总办,任命詹天佑为会办兼总工程司,并在天津设立了京张铁路总局,在北京阜成门内设立京张铁路分局。
同年6月底,詹天佑制定了关沟段的线路施工方案,工期确定为4年,并规划了京张铁路可承受的客货运量及相应票价、用煤等运行方案。还提报了京张铁路的施工预算,共计7,291,860两白银。袁世凯要求詹天佑将预算压缩至600万两白银以内,随后詹天佑将上报预算减至5,724,160两白银。
8月3日,京张铁路正式开始定测,8月30日定测完成。9月,京张铁路工程局于北京阜成门外成立,詹天佑继续担任会办兼总工程司。1907年陈昭常调任吉林巡抚,詹天佑升任总办,关冕钧接任京张铁路总局会办。
1905年10月2日,京张铁路正式开工。工程分三段进行。
第一段:丰台至南口全长55公里,起点位于丰台站东侧的柳村60号桥。1906年9月30日,该段线路建成通车。京张铁路西直门站于1905年开建,并于1906年建成。
第二段:南口至岔道城段全长16.5公里,其中关沟段为施工最难的地段。詹天佑为方便指挥施工将办事处搬到了南口。在设计穿过军都山的铁路线路时,詹天佑采用了人字形展线,并采用33‰大坡度越岭的设计。该设计成功将八达岭隧道的设计长度缩短至符合当时施工能力的长度。1908年4月14日,全长367米的居庸关隧道贯通。5月22日,全长1090.5米的八达岭隧道贯通。
第三段:岔道城经怀来到张家口全长129.7公里。该段工程在第二段工程建设期间就已经开工,以怀来河大桥和鸡鸣山至响水铺段线路为施工关键点。铁路与7月4日正式铺设至张家口站。
在修造过程中,詹天佑全程亲自查验工程质量。1909年8月11日,全部收尾工作完成,工程竣工。9月19日,徐世昌率詹天佑、关冕钧等人乘坐火车逐段验收京张铁路。9月24日,京张铁路全线通车。
10月2日上午8点,南口站举行通车典礼,出席的各方人员包括各国驻京津使节、北洋大臣代表、邮传部堂宪等,到会者约一万余人。徐世昌、詹天佑和朱君淇等人在庆祝通车仪式上发表演说。
京张铁路全长共计201.2公里,工程总耗费比原预算节约了28.9万两,平均每公里造价3.45万两,为当时全国平均造价最低铁路。同时这也是清朝年间第一条也是仅有的一条由中国人自行设计建造并制定规章的铁路。