佐朝廷,楊亮節聽後更為憂慮,擔心自己地位難保,驅逐趙與檡的心意更加堅決。趙與檡後來在處州與元軍交戰,被俘不屈而死。宰相陳宜中此時又使出自己擅長的黨同伐異手段,排斥異已,指使言官將陸秀夫彈劾出朝廷。在小朝廷立足未穩的時刻,陳宜中的這種行為引起眾人的普遍不滿,張世傑責備陳宜中說:“現在是什麼時候?還在動不動就以臺諫論人!”陳宜中無奈之下,將陸秀夫召回。
南宋雖然已經投降元朝,但還有許多地區依然掌握在宋室遺民的手中。福建、兩廣大片地區仍處在流亡小朝廷的控制之下,李庭芝堅守的淮東、淮西地區也進行著拉鋸戰。但在元軍的進攻下,淮東、淮西等地相繼失陷,李庭芝戰死。景炎元年(1276)十一月,元軍逼近福州,此時小朝廷還有正規軍17萬,民兵30萬,淮兵萬人,擁有的兵力遠比元軍要多,完全可以與之一較高下,但由於朝政由陳宜中、張世傑二人主持,陳宜中一直就是膽小鬼,張世傑也“惟務遠遁”,因此小朝廷在福州立足未穩,又開始了逃亡。十一月十五日,陳宜中、張世傑護送著端宗趙昰、衛王趙昺及楊太妃乘一艘海船逃跑,剛剛入海,就與元朝水軍相遇,由於天氣不好,大霧瀰漫,才僥倖得以脫身。離開福州之後,小朝廷失去了最後一個根據地,此後只能建立海上行朝,四處流亡。
端宗一行輾轉泉州、潮州、惠州等地。景炎三年(1278)春,來到雷州附近。逃亡途中,宰相陳宜中藉口聯絡占城,一去不返,第三次充當了可恥的逃兵。端宗由於在逃亡途中受到颶風驚嚇,驚恐成疾,四月十五日死亡,年僅11歲。端宗死後,群龍無首,眼看小朝廷就要分崩離析,陸秀夫慷慨激昂,振作士氣:“諸君為何散去?度宗一子還在,他怎麼辦呢?古人有靠一城一旅復興的,何況如今還有上萬將士,只要老天不絕趙氏,難道不能再造一個國家麼?”眾臣便又擁立年方7歲的趙昺為帝,由楊太后垂簾聽政,改元祥興。
元軍步步為營,小朝廷已陷入三面包圍之下。到達崖山時,小朝廷尚有正規軍和民兵20萬人,而進攻的元軍只有數萬,僅就兵力而言,雙方相差懸殊,且元軍不善水戰,宋軍無疑佔有優勢。但張世傑已經對前途不抱希望,放棄了對崖門入海口的控制,把千餘艘戰船背山面海,用大索連線,四面圍起樓柵,結成水寨方陣,把木製戰船兩側用襯墊覆蓋,以防禦元軍的火箭和炮弩,趙昺的御船居於方陣之中,打算在此死守。張世傑此舉有兩大失誤,一是放棄了對入海口的控制權,等於把戰爭的主動權拱手交給了對方;二是把千餘戰船貫以大索,結成水寨,雖然集中了力量,但卻喪失了機動性,相當於把宋軍暴露在敵人面前,任人攻打。元將張弘範率水軍趕到,控制了崖山之南的入海口,又從北面和南面兩個側翼切斷了宋軍的所有退路。宋軍陷入孤立無援的境地,在10多天的防禦戰中,將士們只能以乾糧充飢,飲海水解渴,飲過海水計程車兵嘔吐不止,戰鬥力嚴重削弱。
一個暴風雨的早晨,元軍對宋軍發起總攻。元將李恒指揮水軍利用早晨退潮、海水南流的時機,渡過平時戰艦難以渡過的淺水,從北面對宋軍發動了一場突襲,到中午,北面的宋軍已被元軍擊潰。南面的元軍又在張弘範的指揮下,利用中午漲潮、海水北流的時機,向宋軍發動了另一次進攻。宋軍南北受敵,士兵又身心疲憊,無力戰鬥,全線潰敗。戰鬥從黎明進行到黃昏,宋軍多艘戰艦被毀。張世傑見水師陣腳大亂,戰船為大索聯貫,進退不得,下令砍斷繩索,率10餘戰艦護衛楊太后突圍。
張世傑率帥船殺到外圍,見趙昺的御船過於龐大,被外圍的船隻阻隔在中間,無法突圍,便派小舟前去接應。當時天色已晚,海面上風雨大作,對面不辨人影,陸秀夫惟恐小船為元軍假冒,斷然拒絕來人將趙昺接走。張世傑無奈,只得率戰艦護衛著楊太后殺出崖門。宋軍敗局已定,陸秀夫知道已沒有逃脫的可能,便把自己的妻子兒子趕下大海,然後對趙昺說:“事已至此,陛下當為國捐軀。德祐皇帝受辱已甚,陛下不可再辱!”趙昺身穿龍袍,胸掛玉璽,趴到陸秀夫背上,一起跳海自盡。官員、婦女、將士們也紛紛隨之跳海。幾天之後,張世傑聞知皇帝已死,決心以死相拼,最後船沉而死。
數天之後,陸秀夫遺體浮出海面,被鄉人收葬。元軍在清理戰場的時候,發現一具身穿黃衣的幼童屍體,身上帶有金璽,上書“詔書之寶”四字,送交張弘範,經確認是趙昺所帶玉璽。張弘範再派人尋找趙昺屍體時,已下落不明。南宋的最後一位皇帝趙昺,連個陵墓都沒有留給後人。
青