建武四年(公元28年)春天,虎牙将军
盖延在
蕲县打败
苏茂和
周建,进而与
董宪在
留县交战,又将董宪打败。盖延率领庞萌攻打西防县,攻克下来。再次追击周建和苏茂到彭城,将其击败,苏茂和周建逃奔董宪。七月,董宪的将领贲休献出
兰陵县投降东汉。董宪得到消息,从
郯县率军包围兰陵。
盖延与庞萌在楚驻屯,请求前往兰陵救援贲休。光武帝告诫他们说:“大军可以直捣郯县,兰陵之围自然就会解除。”盖延、庞萌等认为贲休所守的兰陵城危险,于是先奔赴兰陵救援。董宪与他们迎战,然后假装战败撤退。盖延、庞萌等因此攻破围军进入城内。第二天,董宪率大军合围。盖延、庞萌等恐惧,急忙出城突围逃跑,于是前往攻打郯县。光武帝责备盖延、庞萌等人说:“原来令你们先赴进攻郯县,是出敌不意。现在既已败逃,敌人的计谋已经确定,怎么还能解除兰陵之围呢!”盖延、庞萌等到达郯县,果然攻不下来。而董宪就攻陷了兰陵,杀了贲休。
庞萌为人谦逊和顺,很受光武帝的信任和宠爱,常常称赞他说:“可以托付六尺高的孤儿,寄托一县百里土地的,就是庞萌。”建武五年(公元29年),光武帝任命庞萌为平狄将军(一作平敌将军),派他和盖延共同攻打董宪。
当时光武帝的诏书只颁给盖延而没有颁给庞萌,庞萌认为是盖延在光武帝面前说了自己的坏话,起了疑心,于是叛变,袭击盖延军队,打败盖延。和董宪联合起来,自称东平王,在桃乡以北驻扎军队。光武帝听到庞萌叛变的消息,大怒,亲率军队讨伐庞萌,他给将领们写信说:“我曾经以为庞萌是可以把国家托付给他的重臣,将军们恐怕要笑我说的话吧?庞萌这个老贼应当灭族,你们加紧操练军队,在
睢阳会师!”
建武五年(公元29年)六月,董宪听说光武帝亲自带兵讨伐庞萌,便与刘纡、
苏茂、佼彊领兵离开
下邳,回到
兰陵,让苏茂、佼彊协助庞萌围攻桃城(今山东东阿县西南),他们合兵三万人,迅速包围了桃城,
桃城之战爆发。
光武帝当时正在蒙县,听说之后,便命令留下辎重车辆,亲自率领三千名轻装骑兵、步兵数万人,日夜奔驰赶赴救援。到达亢父县,有人说官员们都很疲劳,可暂且停止行军,住宿休息。光武帝不同意,又行军十里路,在
任城(今山东济宁市)住宿,征召盖延与大司马
吴汉、汉忠将军
王常、前将军
王梁、捕虏将军
马武、讨虏将军
王霸等会师任城,一起讨伐庞萌,汉军距离桃城六十里。第二天早晨,将领们请求进军,庞萌等也派军挑战。光武帝命令将领们不得出击,休整部众,养精蓄锐,以挫败敌军的锐气。
当时吴汉等在
东郡,光武帝派人骑快马招他前来。庞萌等吃惊说:“数百里路日夜行军,以为就会投入战斗,可是刘秀却稳坐任城,招别人到城下。我们确实不能前往!”于是全力进攻桃城。城内的人听说光武帝亲率军队来救援,军心更加牢固。庞萌等派全军攻城,攻打二十多天,将士们疲劳不堪,不能攻陷。吴汉、王常、盖延、王梁、
马武、
王霸等都到达后,光武帝便率领各路大军进攻桃城,光武帝亲自参加战斗,大破庞萌军。庞萌与苏茂、佼彊连夜逃跑,投奔董宪。
建武五年(公元29年)七月,董宪和刘纡带领全部兵马数万人屯驻在
昌虑县。董宪自己率领精锐部队在
新阳县抵抗。光武帝派吴汉打败董宪,董宪败回昌虑县。吴汉则进兵阻拦,董宪害怕,便招致引诱五校军的剩余步兵和骑兵几千人屯驻防守
建阳县,距离昌虑县有三十里。
光武帝率领军队到达蕃县,距离董宪的营垒一百余里。将领们请求进攻,光武帝不同意,他知道五校军缺乏粮食,就会撤退。因此他告诫各路大军坚守营垒,不与敌军交战,以等待敌军疲惫。不久,五校军粮食已尽,果然带兵马离去。光武帝于是亲临战场指挥,从四面围攻董宪。三天后,大败董宪的军队。董宪的兵众四散奔逃。光武帝派遣吴汉率兵追击他们。佼彊率领他的部众投降,苏茂投奔
张步,董宪和庞萌逃进缯县的山中。几天之后,董宪被打散的兵众得知董宪还活着,又纷纷相聚,有几百名骑兵,他们迎接董宪进入
郯城(一作
郯县),据守该城。吴汉等人领兵马又攻下郯城,董宪和庞萌逃到
朐县据守。刘纡不知该逃往何处,被他的军士高扈斩杀,高扈投降光武帝。吴汉等进军包围朐县。
建武六年(公元30年),朐县城中的粮食用尽,董宪和庞萌偷偷地出兵,袭击并占取
赣榆县,
琅邪郡太守陈俊领兵攻打他们,董宪和庞萌逃入
泽中。这时吴汉攻下朐县,全部抓获董宪及其部下的妻子儿女。董宪流泪对将士们说:“现在妻子儿女已被吴汉所获。长时间使各位受苦了。”董宪说完便带领数十名骑兵连夜离开,想从小路前去投降,但是吴汉的校尉韩湛在
方与县追上并杀死了董宪,方与县人黔陵也杀死了庞萌,都将他们的首级送到
洛阳。光武帝便封韩湛为列侯,封黔陵为关内侯。
刘秀:①“可以托六尺之孤,寄百里之命者,庞萌是也。”;②“吾常以庞萌社稷之臣”
范晔《
后汉书》:①“宠负强地,宪萦深江。”;②“萌为人逊顺,甚见信爱。”