景帝派太尉周亚夫率三十六将军往击吴楚,派郦寄击赵,栾布击齐地诸叛国,并以大将军窦婴驻屯荥阳,监齐、赵兵。在吴楚军西向攻取洛阳的道路中,景帝弟刘武的封国梁国横亘其间。吴楚军破梁军于梁国南面的棘壁(今河南永城西北)。
当时周亚夫率汉军屯于梁国以北的昌邑(今山东巨野东南),他不救梁国之急,而以轻兵南下,夺取泗水入淮之口(在今江苏洪泽境),截断吴楚军的粮道,使其陷入困境。结果吴军一败涂地,士卒多饥死叛散。周亚夫派精兵追击,吴王濞率败卒数千遁走,退保长江以南的丹徒(今江苏镇江)。汉遣人策动吴军中的东越人反吴。东越人杀吴王濞,楚王戊也军败自杀。
在齐地,汉将栾布率军进逼,胶西、胶东、淄川、济南诸王或自杀,或伏诛。在赵地,赵王遂撤兵坚守邯郸,郦寄攻之不下。匈奴人知道吴楚兵败,也不肯入汉边助赵。栾布平定齐地诸国后,还军与郦寄共同引水灌邯郸城,邯郸城破,赵王遂自杀。
七国之乱的平定,仅用了三个月,巩固了削藩政策的成果,在很大程度上解决了汉高祖分封子弟为大国所引起的矛盾,并为汉武帝以“推恩策”进一步解决王国问题,创造了必要的条件,但周亚夫在战斗中以大局出发,致梁国于不顾,从而得罪了梁孝王。