宋帝南逃
元军在襄樊之战大破宋军以后,直逼南宋首都临安(今浙江杭州)。德祐二年(1276年)宋朝朝廷求和不成,5岁的小皇帝宋恭帝投降。宋度宗的杨淑妃在国舅杨亮节的护卫下,带着自己的儿子即宋朝二王(益王赵是、广王赵昺)出逃,在金华与大臣陆秀夫、张世杰、陈宜中、文天祥等会合,进封赵是为天下兵马都元帅,赵昺为副元帅。元军统帅伯颜继续对二王穷追不舍,二王只好逃到福州。不久,刚满7岁的赵是登基成为皇帝,是为宋端宗,改元“景炎”,尊生母、宋度宗的杨淑妃为杨太后,弟弟赵昺被加封为卫王,张世杰为大将,陆秀夫为签书枢密院事,陈宜中为丞相,文天祥为少保、信国公并组织抗元。
元军追杀宋帝
赵是登基以后,元朝加紧灭宋步伐。宋端宗景炎二年(1277年),福州沦陷,宋端宗的南宋流亡朝廷直奔泉州,张世杰要求借船,却遭到泉州城舶司、阿拉伯裔商人蒲寿庚拒绝。张蒲二人不和,导致蒲寿庚投降元朝。张世杰抢夺船只出海,南宋流亡朝廷只好去广东。宋端宗准备逃到雷州,不料遇到台风,帝舟倾覆,端宗差点溺死,也因此得病。左丞相陈宜中建议带宋端宗到占城(今越南南部),自己并先驱前往,但后来二王数次召其回朝,陈却都不返;他最后逃到暹罗(今泰国),直至死在那里。端宗病死后,由弟弟7岁的卫王赵昺在碣州(今香港大屿山)登基,年号祥兴,左丞相陆秀夫和太傅(皇帝的老师)张世杰护卫著赵昺逃到崖山,在当地成立据点,准备继续抗元。
至元十五年(1278年),丞相文天祥被张弘范部将王惟义在五坡岭(今广东海丰北)生擒,文天祥作诗——《过零丁洋》。今香港的九龙城的宋王台和侯王庙都是纪念宋端宗一行人的。另外宋端宗母亦葬于九龙城,人称“金夫人墓”,后来由于该址兴建了圣三一堂,“金夫人墓”也随之湮没。
崖山战事
祥兴二年(1279年),元将张弘范大举进攻赵昺朝廷。随后,攻占广州不久的西夏后裔元军将领李恒也带领军队也加入战事。相传起初宋军兵力约有20万,战船千多艘;元军只有2万人,战船五十余艘,北方人不习海战,多晕眩不支。这时宋军中有建议认为应该先占领海湾出口,保护向西方的撤退路线。张世杰为防止士兵逃亡,否决建议,并下令尽焚陆地上的宫殿、房屋、据点;又将下令千多艘宋军船只以“连环船”的办法用大绳索一字形连贯在海湾内,并且安排赵昺的“龙舟”放在军队中间。元军以小船载茅草和膏脂,乘风纵火冲向宋船。但宋船皆涂泥,并在每条船上横放一根长木,以抵御元军的火攻。元朝水师火攻不成,以水师封锁海湾,又以陆军断绝宋军汲水、砍柴的道路。宋军吃干粮十余日,口干舌躁,许多士兵以海水解渴,脸部浮肿,大量呕泄。张世杰率苏刘义、方兴日大战元军,张弘范擒张世杰甥韩某,以其向张世杰三次招降不果。
二月六日癸未,张弘范预备猛攻,元军中有建议先用火炮,弘范认为火炮打乱宋军的一字阵型,令其容易撤退。明日,张弘范将其军分成四份,宋军的东、南、北三面皆驻一军;弘范自领一军与宋军相去里余,并以奏乐为以总攻讯号。首先北军乘潮进攻宋军北边失败,李恒等顺潮而退。元军假装奏乐,宋军听后以为元军正在宴会,稍微松懈了。正午时段,张弘范的水师于是正面进攻,接着用布遮蔽预先建成并埋下伏兵的船楼,以鸣金为进攻讯号。各伏兵负盾俯伏,在矢雨下驶近宋船。两边船舰接近,元军鸣金撤布交战,一时间连破七艘宋船。宋师大败,元军一路打到宋军中央。这时张世杰早见大势已去,抽调精兵,并已经预先和苏刘义带领余部十余只船舰斩断大索突围而去。赵昺的船在军队中间,四十三岁的陆秀夫见无法突围,便背着8岁的赵昺跳海自杀。不少后宫和大臣亦相继跳海自杀。《宋史》记载七日后,十余万具尸体浮海。张世杰希望奉杨太后的名义再找宋朝赵氏后人为主,再图后举;但杨太后在听闻宋帝昺的死讯在后亦赴海自杀,张世杰将其葬在海边。不久张世杰在大风雨下溺死于平章山下(约今广东省阳江市西南的海陵岛对开海面)。