引水破城尚未就緒,忽有探馬來報,遼兵分兩路來援北漢,趙匡胤便命大將何繼筠和韓重分頭去迎擊。不數日,捷報傳來,遼兵已被擊退。
趙匡胤便叫竭力攻城。這時,汾水已漲得接近城頭,趙匡胤便令將士乘小船駛向城邊猛攻,步軍都軍頭王廷義立於船頭,親自擂鼓督促士兵前進,楊業在城上看得親切,一箭射去,正中正廷義麵門,箭鏃直透腦部而死。殿前指揮使都虞侯石漢卿也中流矢落水溺死。趙匡胤見死傷過多,隻好傳令收兵。一時也想不出破城辦法。
又過了幾日,南城牆終於被水衝開了一個缺口,水直往城內灌去,城中大驚。北漢兵慌忙來堵口,卻被宋兵用箭射退,北漢兵無法接近缺口,這時楊業立即命令士兵,捆紮一捆捆的柴草投入水中,草堆浮至缺口處,因水淺而擱住,宋兵放箭不能穿透草堆,北漢兵便又趁機把缺口堵塞住了。
那北漢宰相郭無為在城內不斷勸劉繼元投降,引起劉繼元反感,正巧有人告密說,郭無為與宋軍有勾結。劉繼元便派兵突然搜查郭無為住所,查出了宋朝發給他的詔書。劉繼元便將郭無為斬首。自此,北漢無人敢再勸說劉繼元投降的了。
這樣堅持了三個月,晉陽仍未攻下,天氣漸漸到了盛夏,宋兵因為常在水邊,氣候潮濕,很多人患了痢疾。楚昭輔向趙匡胤進諫道:“北漢有楊業這樣深通兵法的良將,晉陽一時攻打不下,再者我軍士兵因暑熱而患病者多,望陛下能多體恤士卒,不如暫時班師,以待時機。現在天下僭號稱王稱帝的,大都已歸順,這晉陽彈丸之地,成不了什麼氣候。暫時不取,也無傷大局。”
趙匡胤因問趙普,趙普也以為然。於是趙匡胤便下旨班師回京。楊業見宋兵退走,哈哈大笑,說道:“宋兵以水淹城,隻知其一而不知其二,如果先漲水淹城,再退水,則晉陽不複為北漢所有了。”
見宋軍撤兵,楊業便引兵出城決堤放水,水落之後,那些城牆由於經水浸泡日久,牆上泥灰早已浸泡成漿,卻賴城外水的擠壓力量,才沒倒塌。如今水已退去,城牆外沿沒了支撐,果然大麵積傾倒,可是這時宋兵已經走遠,楊業得以從容修整城池。
太原之戰,是一場計劃外的戰爭,這場計劃外的戰爭,並沒有帶來意外的收獲,轟轟烈烈的北伐,就這樣無功而返。