廣元十五年九月,朝廷以左武威大將軍甘潛為大都督,領軍五萬出武寧關前往河東平叛。水印廣告測試水印廣告測試
甘潛能力平庸,但為人謹慎,領軍五萬,穩扎穩打,一路順利,三戰三捷,不到一個月,已然全面肅清河東道白巾軍,隨即進軍河南道。
劉志恒主動退出河東道,示敵以弱,一讓再讓,甘潛被連番的勝利沖昏了頭腦,率大軍直逼興州三原縣,尋求白巾軍主力決戰,意圖一戰而定全局。
劉志恒詳敗而退,甘潛率軍追擊,在無佘山受到伏擊,措不及防,大敗,幾近全軍覆滅,甘潛戰死。
白巾軍士氣大震,劉志恒復占河南道,隨即領十萬大軍再次兵圍河東首府晉陽城,天下震動,朝野震動。
十月底。
河東道節度副使,晉陽留守,司馬圖斷然拒絕劉志恒的勸降,并把其派來的使者梟首示眾,懸掛于城墻之上。
劉志恒大怒,隨即率軍攻城,晝夜不停。
司馬圖一面派人前往朝廷求援,一面聚兵一萬以及數萬城中青壯百姓,拒城死守,竭力抗御。
雙方大戰數日,皆是死傷慘重。
十一月。
晉陽城久攻不下,劉志恒命人在城南筑土山,欲居高臨下攻城,司馬圖縛木加高城樓,使白巾軍之計無法得逞。
劉志恒隨即改變戰術,命人領軍三千詳攻南城,自己則是領五萬大軍,趁夜主攻北城,并讓人挖掘十數條地道,雙管齊下。
司馬圖識破其計,命手下將軍領五百士兵,多做木人以充數量,守衛南城,以虛對虛,本人則是領軍五千守衛北城,并挖掘長溝,切斷白巾軍的地道,待白巾軍挖至深溝時,將其擒殺。司馬圖又在溝外堆積木柴,備好火種,發現白巾軍在地道中潛伏,便將木柴塞進地道,大火燃燒,還借助牛皮囊鼓風,烈火濃煙,地道中的白巾軍士兵被燒得焦頭爛額,以致數千白巾軍活活窒息死于地道之中,其狀慘不忍睹。
城外,劉志恒一面率軍強攻,一面讓人用攻車撞擊城墻,司馬圖聽從手下幕僚之計,用布匹做成帳幔,隨其攻車所向張開,攻車撞之,布受沖擊立即懸空,城墻未受損壞。
死守的同時,司馬圖命人從城東懸繩而下,聚兩千敢死之士,趁夜繞其白巾軍身后,突然發起進攻,并高呼朝廷援軍以致,白巾軍不知有詐,真的以為朝廷大軍到來,士氣潰散,陣型大亂,被殺者數以千計,劉志恒率軍退避百里,直到天明,才知上當受騙,頓時怒火攻心,昏厥于地。
廣元十五年,十二月中旬,當劉志恒久攻不下,被困晉陽城之時。
楚州節度使王懷烈,領軍兩萬,在徐州大破劉志恒手下大將李默安,其人被斬于軍前,王懷烈領軍北上,殺入河南道,一路勢如破竹,連戰連捷,鎮守河南道的白巾軍主將黃百川,放棄所有城池,收攏士兵,得軍五萬,死守河南道重鎮相州。