元軍占領長江中遊重要門戶鄂州後,“沿江諸將多呂氏部曲,皆望風降附”,在呂文煥的招降下,黃州、蘄州、安慶等地守將不戰而降。
此時身在兩淮的宋朝降將劉整唯恐呂文煥立下頭功,一急之下竟然發病而死。聽說劉整死了,賈似道來了精神,他於1275年正月親率南宋最後的精銳十三萬人、二千五百艘戰船逆江而上,迎擊伯顏的大軍,決定南宋生死存亡的一戰到來了!
2月,宋軍抵達蕪湖後,非但不積極部署禦敵,反而先遣返元軍戰俘,原來賈似道想故伎重施,向伯顏乞和,但遭拒絕。無奈之下,賈似道隻得下令步軍指揮使孫虎臣率七萬兵馬列陣於丁家洲(今安徽銅陵東北長江中),同時命水軍統領夏貴率兩千五百艘戰船橫亙江中,他自己率後軍駐紮魯港(今安徽蕪湖南)。
伯顏率水陸大軍進至丁家洲,與宋軍相距數裏。伯顏見宋軍人數眾多,於是決定采用計策。他先讓軍中作數十個大筏,上置柴草,佯言要焚燒宋舟,使得宋軍晝夜嚴備因而疲憊不堪。伯顏又下令步騎軍沿江兩岸進攻,同時讓戰船向宋軍衝擊,雙方展開一場激烈的決戰。
在元軍回回炮的轟擊下,宋軍損失慘重。宋軍前鋒將薑才方與元軍接戰,前軍主將孫虎臣竟棄陣先遁,諸軍於是紛紛潰敗。元軍將領阿術趁機率戰船數千艘,乘風急進,突入宋陣,橫擊宋艦。水戰本是宋軍的強項,但夏貴恐賈似道督師獲勝,而自己因鄂州之敗受到責難,竟然不戰而逃,直奔廬州。
賈似道聽聞前軍潰敗,驚愕失措,急忙下令收兵,企圖乘船逃往揚州,整軍再戰。不料元軍乘勝追殺,宋軍不戰自潰,潰不成軍,紛紛四散奔逃。元軍主將伯顏下令全線追擊,一直追殺一百五十餘裏。丁家洲一戰以元軍完勝而告終,此戰元軍俘獲宋將三十餘人,士卒數萬,戰船一千餘艘。本來是場決戰,卻成了一場大潰敗,可以說此戰元軍幾乎不費吹灰之力,就讓南宋主力十三萬人喪失殆盡。