马邑之谋发生的大背景,是在汉朝廷决定废除屈辱的“和亲”政策,转而对匈奴实施军事打击的背景之下。
在此之前汉武帝刘彻委派李广等名将带兵镇守边郡要塞,征调士卒巩固边防,同时采取措施鼓励养马,到了公元前134年,汉朝廷已经可以组建大规模的骑兵。
同时,在外交方面,张骞出使西域联结大月氏夹击匈奴,已经初有成效,至少在形势上孤立了匈奴。
据史记韩长孺列传、史记匈奴列传及汉书窦田灌韩列传等记载,公元前133年匈奴请求与汉朝和亲结盟,当时朝廷大臣为此争持不下,韩安国等人支持和亲,王恢却认为应该绝其所求,以兵击之。结果韩安国一方得到较多朝臣支持,于是武帝决定与匈奴和亲。
但是当聂壹通过王恢提出诈降匈奴,引诱军臣单于入马邑,让汉军围而歼之的计划后,汉武帝通过简短的朝议之后,就批准了。
当时聂壹奉命以自身作饵,亲到匈奴阵营,向当时的军臣单于诈降,他声称自己能斩杀马邑县令,迫使马邑举城投降,然后匈奴可尽得该城财物。
军臣单于果然贪恋马邑的财物,信其所言,便立刻策划起兵。
聂壹回汉后,以一名罪犯的首级讹称为马邑长吏之头,以示时机已至,引诱匈奴军深入重地。
这是大汉朝廷自败于白马之围后,第一次对匈奴的大规模作战。汉武帝刘彻非常重视,他派出五位将军连同车骑步共三十万人在马邑设伏。
这五位将军都是当时的大汉名将,分别是卫尉、骁骑将军李广,太仆、轻车将军公孙贺,大行令、将屯将军王恢,太中大夫、材官将军李息,御史大夫、护军将军韩安国。
韩安国为三军统帅,其他各部人马都隶属韩安国,具体部署为护军将军韩安国、骁骑将军李广、轻车将军公孙贺率主力部队埋伏在马邑附近的山谷郑
将屯将军王恢与材官将军李息率3万多人出代郡今河北省蔚县东北,准备从侧翼袭击匈奴的辎重并断其退路,一举全歼匈奴主力。
各部约定在军臣单于进入马邑时纵兵出击。
计划一度进展的很顺利,军臣单于因贪图马邑城的财物,亲率10万大军进入武州塞今山西省左云县,并派使者随聂壹先入马邑,等斩杀马邑县令后进兵。
聂壹在马邑城中与县令密谋,杀死一名囚犯,割下首级悬挂在城门之上,伪装为县令头颅,欺骗匈奴使者。
军臣单于得到使者的信报后,率大军向马邑进发,距离马邑不足百里时,却发现城野之间只见畜群,竟不见放牧之人,于是起了疑心。他派兵攻下雁门一处边防亭堡,俘虏了其中的尉史。
在威逼利诱之下,该尉史揭穿了早已有三十多万汉军埋伏在马邑附近的真相,识破阴谋的军臣单于大惊之下下令退军,汉军设伏全无用武之地。
王恢判断形势后,认为已经错过了袭击匈奴军辎重的最佳时机,于是决定收兵回师,“马邑之谋”遂以失败告终。