公元前134年,匈奴军臣单于请求和亲,汉武帝令群臣发表意见,王恢主战,韩安国主和,而群臣则已经习惯了多年来的和亲政策,大多附议主和。汉武帝刘彻无奈继续和亲。次年,公元前133年,雁门马邑人聂壹通过王恢向汉武帝献策伏击匈奴。陈述的理由是,匈奴人一向见利忘义,现刚定和亲之约,必以为大汉边境疏于防范,此时如果以利诱之入边,而中途设伏袭击,必会将其全歼。汉武帝采纳了这个建议,决心伏击匈奴。
公元前133年6月,汉武帝以韩安国为护军将军,以李广为骁骑将军,以公孙贺为轻车将军,王恢为将屯将军,李息为材官将军,率军30余万于马邑设伏。聂壹入境匈奴,对单于佯称能斩马邑令丞,可得全城财物,单于信之。聂壹返回马邑后,斩城中死囚,将头颅悬挂于城下,伪称马邑长吏已死。匈奴得报后,率10万骑兵,越过长城,向马邑进发。然而,在行至距马邑不到百里时,见遍地牛羊却无从看管,心中起疑,派兵至雁门,捉其尉吏,审问后得知汉军计划,急率军驰回长城以外,汉军追击未果。
马邑伏击战虽然劳而无功,却暴露了汉军的诸多问题,首先步兵机动性太差,无法与匈奴骑兵相比,即使相距不到百里,也难以追击敌人,且行动缓慢,行军意图容易暴露。其次,守株待兔式的伏击战,只能被动等待对方上钩,主动性完全在对方手中,用于对伏长期在草原围猎的匈奴人来讲,可以说完全处于劣势。再次,通过这次行动,汉武帝刘彻意识到,朝中老将由于多年的作战习惯,已经习惯于防御,缺乏主动出击的积极性。可以说是,军事改革,势在必行。