現在,宋朝就隻剩下最後一個據點——崖山。張弘範與李恒會合之後,決定速戰速決。
他們在甲子門抓到一個宋兵,嚴刑拷打之後,逼問出崖山的方位形勢,於是立刻向崖山進發。
崖山也接到了情報,張世傑與謀士們商量對策。謀士建議,絕對不能讓出海的要塞港口被元軍占領。張世傑暗忖:久處海中,軍心不免漸漸離散,如果這次不能一決勝負,即使是突圍出港,又能到什麽地方去呢?
於是他下定決心,要與元軍死拚。他說:“這幾年我們在海上漂泊,要到哪一天才是個頭呢?如今張弘範既然要來,我們就打一場硬仗,定出個勝負吧!”
於是,他把岸上的行宮、一千多間兵房全部放火燒光,軍隊全數移到海上,並在沿海各口岸采辦了大量糧食。
他用鐵索把舟船連鎖在一起,又在四周築起樓棚,就像是一座人工造成的小浮島。最後,他請皇帝跟朝廷搬到中間的一隻禦舟上。不久,崖海大戰開始了。
張世傑的艦隊有船一千多艘,而且多是大型海船,官民將士共有二十餘萬人,許多將領身經百戰,士兵們背水一戰,士氣極高。
張弘範一看對方是連環戰船,便下令士兵們以舟載幹草,再澆上膏油,順風縱火攻過去。而張世傑早已作了準備,他用厚厚的泥漿塗在船上,不容易著火,並在船上安排好撞竿,當元軍的火種船一來,便用撞竿撞擊火船。這種撞竿非常粗大,即使不能撞翻元人的船,至少也能頂住,不使它接近宋軍的戰艦。最後,元軍的火種船自己燃燒起來,沉下海去。
火攻失敗以後,張弘範便暫停了攻勢。聽說投降的部隊裏有一個張世傑的外甥,於是他就派此人去說降。這個外甥到舅父那兒求了三次,張世傑不但不降,反而開始跟外甥講起曆代忠臣義士的故事。