清光绪三十一年(1905年)12月12日,京张铁路西直门站正式动工,1909年开始运营。西直门站是中国自主设计建造的第一条干线铁路--京张铁路(北京丰台柳村至张家口)的重要车站,车站主体建筑、月台、连接两个月台的过街天桥均为詹天佑设计。
民国12年(1923年),京张铁路通至绥远,当时北京叫"北平",故更名称"平绥铁路",西直门车站改称平绥铁路西直门车站。后平绥铁路通至包头,更名为"京包铁路"。
20世纪70年代,北京市区内几段铁路被拆除,西直门火车站就成为京包铁路和京通铁路的始发、终到站,从北京去往内蒙古通辽、赤峰及八达岭长城等地的旅客,均从北京北站出发 。
1988年,西直门火车站改名北京北站。
1995年,平绥铁路西直门站旧址成为第五批北京市文物保护单位。
2005年,北京北站改造工程正式动工,工程主要包括站房扩建以及与北京站、北京西站相类似的大跨度无站台柱雨棚工程,站台、铁道线路和行车信号的改造,总投资1.1亿元。
2007年,北京北站站房新建工程正式开启,新站房高六层。
2008年12月,北京北站站房新建工程竣工。
2009年1月17日,北京北站新站房正式启用。
2016年11月1日,受到京张高速铁路施工的影响,北京北站停办客运业务,除北京市郊铁路S2线市内始发、终到站迁移至黄土店站外,其它客运业务转移至昌平北站。
2019年12月10日,中国铁路北京局集团有限公司公布了沿线北京北站、崇礼铁路太子城站的车站。
2019年12月30日,在停运三年后,北京北站正式恢复运营,首发列车于8时30分始发。开通运营后,北京和张家口两地间的"轨道交通时间"将从3小时压缩至50分钟左右。