在西汉王朝建立时,西北地区的一个少数民族——匈奴开始强大起来。当时,匈奴南下占据河套以南地区,拥有骑射兵力30万余,对边境地区经常骚扰,甚至引兵南下。公元前200年,刘邦轻敌,率领30万军队向北进击,在山西北部平城(今大同东北)中计被围7天,断粮供应,情况危急。后来用计撤兵南归,避免大败。
于是西汉时起,为了安定,遂采取和亲政策。可是匈奴并不满足,在文帝前元三年(公元前177年)、文帝前元十四年(公元前166年)、文帝后元六年(公元前158年),三次分别从陕西绥德、甘陕固原、凤翔以及山西北部大举入境,曾威胁到西汉王朝的政治中心。
经过多年准备,在武帝时,对匈奴进行了反击。武帝的战略是收复河套以南之地,使匈奴失去接近山西、陕西北部的条件较好的草原基地,就可以解除其从北面来对长安首都的威胁;其次是进军河西走廊,清除匈奴在河西的基地,不仅剪除首都长安的西面威胁,而且使西汉可以与西域直接联系,共同对付匈奴,使漠北匈奴的西南暴露出来,处于受攻击的地位。
后来,为了巩固其胜利,西汉在河套及河西两地采取移民实边、屯田守卫的办法,开发农业基地,并筑城防卫。在河套南设立朔方郡,在河西设立武威、张掖、酒泉、敦煌4郡。通过河西走廊,还开辟了经西域、中亚到地中海沿岸国家的丝绸之路。
接着,就是与匈奴展开漠南和漠北的决战。通过卫青、霍去病等大将多次长距离的袭击,终于使匈奴发生南北分裂,南匈奴多依附于汉朝,北匈奴则在西汉的打击下势力大为削弱。在汉武帝晚年及以后,匈奴与西汉仍然时有冲突,但是,河套以南与河西之地牢牢控制在西汉手中,加上南匈奴的依附,双方冲突虽互有胜负,但原来对首都长安的威胁则已基本不复存在。
可以说,西汉王朝原来接受娄敬与张良意见建都长安多是从制内角度出发来考虑的。但是,从后来的实际情况来看,则是在御外方面发挥了作用。它使西汉王朝为解除首都的威胁,在西与北两个方向大开疆土,并且开辟了向西联系的丝绸之路。如果当时选取的首都是洛阳,也许情况会另有变化。