汉武帝提供了正反两方面的意见。最终刘彻采纳了王恢的建议。为了确保打赢这一仗,汉武帝任命韩安国为护军将军,卫尉李广为骁骑将军,太仆公孙贺为轻车将军,王恢为将屯将军,太中大夫李息为材官将军,统率 30 多万大军,埋伏在马邑附近的山谷中,等着匈奴单于“上当”。而另一边,聂壹成功忽悠了匈奴大单于,欺骗匈奴单于军臣说:“我能杀死马邑县的县令和县丞,献城归降,把全城的财物都献给大王。”军臣信以为真。到约定的时间,聂壹斩杀了几个死刑囚犯,然后按照事前与匈奴约定的信号,把他们的头悬挂在城楼上,向匈奴使者表示马邑的地方官已被杀死,可以遵约前来。于是,军臣亲自率领十万骑兵来接收马邑。
匈奴大军进入汉朝的边界,到达武州塞。离马邑还有一百多里时,只见牲畜遍野,却没有一个放牧的人。军臣起了疑心,派人攻打附近的一个亭堡,俘虏了雁门郡的尉史。尉史贪生怕死,供出汉军的诱歼计划。军臣一听,大吃一惊,立即下令撤退。汉军得知匈奴骑兵撤退的消息后,已追赶不上了,只好全军撤回。
王恢带领三万兵马从代地出发,在匈奴兵撤退的必经之地埋伏准备袭击匈奴的辎重,忽然听到匈奴撤军,气得暴跳如雷。此时王恢只有三万军队,匈奴却是十万军队,由于匈奴人多势众,他不敢贸然追击,斟酌再三后选择了放任匈奴大单于撤退,王恢悻悻而归。作为这个计划的提出者和执行者,王恢在关键时刻痛失了打击匈奴的良机,使整个计划竹篮打水一场空,正可谓“成也王恢,败也王恢”。
汉朝大军回来后,一心想毕其功于一役的汉武帝万分震怒。一气之下,他将王恢下了监狱。感到百般委屈的王恢托人找太后求情,却无果,王恢听说后,就在狱中自杀了。
“马邑之谋”是汉匈关系的一个转折点。自此,两家彻底撕破了脸,再无“和亲”换“和平”的可能。汉武帝也彻底抛弃了自高祖开国延续几十年的和亲国策,重新选择了以武力征讨稳定边防的战略,为接下来卫青、霍去病等一大批年青将领提供了建功立业的难得机遇,也将平城推到了汉匈长年征战的历史前沿。