汉武帝亲政(公元前135年),汉朝开始转变北方边防战略。公元前134年任命李广为骁骑将军,屯兵于云中郡(今内蒙托克托);程不识为车骑将军,屯兵于雁门郡(今山西右玉)。这两支军队堵住了匈奴沿吕梁山入侵的道路,而当匈奴向东、向南进军时,也可以从侧面打击匈奴。可能是因为后勤问题的制约,不久就撤消了这一部署。但这是在边防线上部署野战机动部队的开始。
公元前133年汉武帝接受聂壹、王恢的建议,引诱匈奴进入马邑,汉军在两侧部署了30万人,打算进行一次决战。可密谋泄露,匈奴迅速退走。从此汉朝动员并部署了大量的骑兵,在边境以野战军展开机动作战。公元前129年,在匈奴袭扰上谷(今河北怀来一带),汉军从上谷、代郡、雁门、云中4路出击。第二年匈奴2万骑兵袭扰辽西(辽宁义县一带),汉军在辽西进行牵制,主力3万骑兵从雁门、代郡迂回出击,截击匈奴后路。公元前127年,汉军再次反击,在上谷等地牵制匈奴,主力5万骑兵进行大迂回作战,一举消灭在河套地区盘踞多年的匈奴楼烦、白羊部落,收复全部河套地区。
这一仗获胜后,汉军开始发动主动进攻,公元前124年至公元前121年,每年都发起新的攻势,公元前119年更是出动了10万骑兵分两大纵队、4路深入漠北(蒙古高原大沙漠以北地区统称),击败匈奴主力,打通河西走廊,将边防线推进到祁连山、阴山以北,并开始在这一线修建长城及烽燧据点。
在边防线上长期维持如此规模的机动野战军是汉朝难以承受的财政负担,不久就只留下和原来体制一样的边郡驻守军。几年后匈奴卷土重来,攻掠设立不久的五原郡(今内蒙包头附近),杀死太守。说明边郡驻守军仍不足以抵挡匈奴。
以后在沿边都护府和原来的行政监察区“道”的基础上,将沿边的“道”组编为军区,设置“节度使”,作为皇帝的代表,执掌军政全权。北方设置8个节度使:原来的安西都护改为安西节度使,仍统4镇,常备军约2.5万人;北庭都护改为北庭节度使,统天山北路,2万人;河西节度使,设在凉州(今甘肃武威),防御河西走廊,隔断吐蕃和突厥,下辖8军、3守捉,有7.3万人;陇右节度使,设在鄯州(今青海乐都),防御吐蕃,下辖10军,7.5万人;朔方节度使,设在灵州(今宁夏灵武),下辖原来安北、单于2都护和3军、3城、3州,有6.47万人;河东节度使与朔方节度使并列,防备正北方向,设在太原,有5.5万人;范阳节度使,设在幽州(今北京),防御燕山山脉正北方向,下辖9军、9州,有9.14万人;平卢节度使,设在营州(今辽宁朝阳),下辖2军,以及原来的安东都护府,有3.75万人。西南地区设剑南节度使,防御吐蕃,有6军13州,3万多军队。
由于府兵制瓦解,为解决兵源,允许节度使就地征募组军。原来的都护出镇挂帅,回朝执政,到此时节度使大多为少数民族将领,长期任职。职业将领率领职业士兵,仅北方边防军就已超过了40万人,实力大于朝廷中央军集群。导致后来“安史之乱”的发生。
唐末藩镇之祸给宋朝统治者留下了太深的印象。因此北宋无所谓边防军,一律由中央派遣禁军轮流到边防镇守,而且为防止武将擅权,改派文臣挂经略使之类的头衔担任总指挥,武将不得掌握全局。北宋已丧失燕山山脉屏障,北方边界无险可守,只能以野战军机动防御,但这样的体制下,军队部署和调遣难以实现机动灵活,在面对辽、西夏的骑兵机动部队时,处处被动,处处挨打。