1909年,沪宁线总管理处填没该处芦苇荡后建成高四层的西式洋房。站房设计采用英籍工程师西排立的设计图纸,造价总计329440元银元。大楼一层外墙采用花岗岩修建,二层起及以上采用大理石廊柱与拱形门窗的式样,内设房间76间。另外在大楼底层另建6间大型平房,与底层相连,构成候车区域和邮政、售票的服务性区域。大楼二层及以上则作为沪宁线总管理处的办公用房。1913年,位于现上海站站址的麦根路货运站建成。1916年12月,沪宁铁路和沪杭甬铁路并轨工程完工,沪宁铁路上海站更名为上海北站,沪杭铁路上海站则更名为上海南站。1932年,一·二八事变发生,因上海北站位于租界以外,并临近闸北战场,因此遭到破坏,四层楼房毁于战火。1933年5月,上海北站进行修复,站房的底层得到恢复,二层中间部分也得到重建,同时兴建左右候车室、行李房等设施。1937年8月,淞沪会战爆发,上海北站再度沦为战区并遭到日军战机轰炸。8月28日14时,日军出动多架次战机,对上海南站实施轰炸,楼房及附属设施完全被毁,同时炸死炸伤旅客数百人,南站铁路运输完全中断。11月12日,随着上海除租界外全境沦陷,日军开始拆除上海南站及其附近长约1.5公里铁路,同时修复上海北站,并更名为“上海驿”。自此,上海所有旅客运输全部归于上海北站。1945年,京沪区铁路管理局接管上海北站,并于次年开始进行车站的修复和扩建。经此次修复,站内站台延长至360米,拓宽站台达2787平方米,兴建两座候车室。1947年4月,上海北站升格为上海总站。1950年3月,原上海铁路局恢复上海北站名称。1950年8月1日,经由原铁道部批准,上海北站更名为上海站,并核定为特等车站。原由上海总站管辖的麦根路站独立经营,并于1953年1月改称上海东站。1960年,上海站的货运移至东站,成为专营的客运车站。1961年,原货运仓库进行改造,建成1041平方米的候车室和行李仓库。同时延长货运站台,改建成旅客月台,并将货物线改建成客车到发线,形成南北两区,共计11股旅客到发线,候车室达3985平方米,车站日可容纳到发列车29对。新上海站1981年3月,因上海站虽数经改建、扩建,终因受地理环境限制,站场和设备无法得到很大改善,难以应付快速增长的客流,原铁道部与上海市人民政府向国务院提交筹建新站的报告,提出在上海东站的原址的基础上,建设一座2万平方米的主楼、3.7万平方米的广场,日到发能力达72次的新上海站。同年6月19日,国务院批复该计划。1982年4月1日,在不影响上海站日常运营的情况下,上海东站停止办理货运业务,但其他例如列车通过、车底存放、调车、单机通过等业务仍照常办理。1983年9月8日,上海市政府、原铁道部因方案产生变化因此向原国家计委提交了上海铁路新客站的新设计方案。相对原计划,新计划的修改和扩充主要有:上海站站厅的容纳人数扩大到1万人,站厅面积扩建到3.3万平方米;疏通上海站周边道路,建造大统路非机动车立交,建造恒丰北路立交桥;明确自批准后6个月内动工,1987年前完成一期工程,1988年前完成二期工程;确定工程总投资为26736万元人民币。1984年9月20日,上海站新站房工程正式开工。1986年4月24日,工程完成第一阶段施工,新客站的南部的大厅和高架站房的土建基本完成。1987年6月25日,工程完成第二阶段施工,兴建北半区的停车线和机走线,完成北半区的站厅和高架候车厅。同时,大统路立交建成通车。1987年12月27日,工程完成第三阶段施工,新客站南北广场、通道、站内基础设施的安装调试以及新客站站内装修完成。同时,恒丰路、天目西路的拓宽、恒丰路桥改建以及轨道交通一号线的预留站台和折返线、邮电大楼均完工使用。1987年12月28日,上海站新站房正式启用,老北站改建成为上海铁路客车技术整备站,主要用作客车整备。为区别以前的老火车站,新建的上海站一般被称为“新客站”。2008年12月21日,上海站正式开行至北京的高铁动卧和到香港九龙站的直达特快列车。2010年,为迎接上海世博会的召开,上海站进行大规模整修翻新,建成无廊柱雨棚,全部工程于2010年春运前完工。