鄧潛之是豫章南昌本地人,他的計策還是很中肯的。但何無忌性格向來是風風火火,從來沒打過一次窩囊仗,所以並不採納,而且晉朝的豫章郡縣守臣都跑光了,徐道覆又是順流而下,何無忌是溯江而上,雙方速度是不一樣的,如何決南塘?只怕來不及啊!為今之計,還是狹路相逢勇者勝!龜縮死守,退讓怕輸,這可都不是北府人的性格!
於是,何無忌仍率部登舟溯贛江而上,於三月二十日,與天師道軍相遇於豫章城下。果然,天師道軍已提前到達這裡,並預先做了準備,在贛江西岸的小山上布置了數百強弩伏兵,待晉軍船隻經過時突然冒出,攔腰射擊。晉軍的船隻都是小船,士兵缺少甲板保護,只能舉旗盾牌護身,而就在這時天師道大船又沖了上來,對晉軍進行正面射擊,晉軍無法抵擋兩個方向的攻擊,一時損失慘重。而就在這時,更糟糕的事情發生了,戰場上突然颳起猛烈的西風,將晉軍的小船全都吹攏到東岸,正在慌亂,天師道的樓船又藉助風勢猛衝上來,撞得晉軍小船一艘艘傾倒翻覆,士兵們紛紛棄船逃生,晉軍遂奔潰。眼見敗局已定,何無忌不肯做逃兵,他厲聲喝令左右:「取我蘇武節來!」然後持節督戰。徐道覆知道何無忌就是戰局的重點,於是命所有樓船將何無忌的小船團團圍住,死命攻打。面對烏雲蓋頂般的四面樓船,何無忌面色不改,直到持節戰死。徐道覆遂趁勝進占尋陽,扼斷長江。