在这样情况下西汉朝廷被迫改变策略,在以“和亲”为缓兵之计的同时,加紧向关中地区移民,增加兵源。为了加强边郡兵源,西汉还在公元前169年接受晁错的建议,征募农民往边防线一带移民,号为“移民实边”。以后规模越来越大,汉武帝时期曾征发60万人前往边境实行屯田,且耕且战。
同时将沿边各郡转变为战时体制,给予各边郡郡守军事指挥权,不仅可以指挥调动各地到边郡服役的戍卒,还有权在当地征发兵役,应付紧急情况。各郡由郡尉担任日常的军队组织训练,太守在战时为最高指挥官,有权临时决断,无须请示朝廷。尤其说太守是行政长官,还不如说是军区司令。汉文帝时云中太守魏尚平日每5天宰头牛慰劳士兵,军营市场的租税给士兵改善伙食。得到士兵爱戴。有匈奴入侵就带兵反击。后来只因为上报战功多报了6个首级,就被逮捕判刑。说明对太守的考核是以边防为主的。著名的飞将军李广在哪一个边郡出现危机时就被紧急调任,在40多年里先后担任过7个边郡的太守,威名远扬。
西汉边郡军队主要任务是防御小规模的侵扰,军队分散部署,固守据点。在边境线设候、障之类的堡垒,有候官、障尉、候长。这些据点相隔白天目视所及的距离,发现情况白天燃烟、晚上点火,传递消息。在判明匈奴的主要进攻方向后,朝廷再出动野战军。如公元前166年匈奴14万骑兵入侵,斥候到达距长安不足两百里的甘泉(今陕西淳化一带)。朝廷紧急征调军队,在长安、上郡(今陕西榆林一带)、北地郡(今甘肃庆阳一带)、陇西郡(今甘肃临洮一带)这4个地区集结,形成对陕北高原上匈奴军队的袋形半包围态势。但汉军仍然避免与匈奴大规模会战,听凭匈奴饱掠月余后退走。公元前158年匈奴再次大举入侵上郡,汉军也相应集结于长安附近的霸上、细柳、棘门,以及北地郡、飞狐口(今河北涞源一带)、句注山(今山西代县一带),防备匈奴南下或东进。但当时汉朝的经济实力还养不起这些临时征发组编的大军,匈奴退走,集结的野战军也就解散。
汉武帝亲政(公元前135年),汉朝开始转变北方边防战略。公元前134年任命李广为骁骑将军,屯兵于云中郡(今内蒙托克托);程不识为车骑将军,屯兵于雁门郡(今山西右玉)。这两支军队堵住了匈奴沿吕梁山入侵的道路,而当匈奴向东、向南进军时,也可以从侧面打击匈奴。可能是因为后勤问题的制约,不久就撤消了这一部署。但这是在边防线上部署野战机动部队的开始。
公元前133年汉武帝接受聂壹、王恢的建议,引诱匈奴进入马邑,汉军在两侧部署了30万人,打算进行一次决战。可密谋泄露,匈奴迅速退走。从此汉朝动员并部署了大量的骑兵,在边境以野战军展开机动作战。公元前129年,在匈奴袭扰上谷(今河北怀来一带),汉军从上谷、代郡、雁门、云中4路出击。第二年匈奴2万骑兵袭扰辽西(辽宁义县一带),汉军在辽西进行牵制,主力3万骑兵从雁门、代郡迂回出击,截击匈奴后路。公元前127年,汉军再次反击,在上谷等地牵制匈奴,主力5万骑兵进行大迂回作战,一举消灭在河套地区盘踞多年的匈奴楼烦、白羊部落,收复全部河套地区。