崖山海戰是宋朝末年宋朝與元朝的一次戰役,這場戰爭直接關系到南宋流亡朝廷的興亡,最終宋軍全軍失敗告終。此次戰役標志著宋朝的滅亡。
元軍在襄樊之戰大破宋軍以后,直逼南宋首都臨安(今浙江杭州),德祐二年(1276年)宋朝朝廷求和不成,于是5歲的小皇帝宋恭帝投降。宋度宗的楊淑妃在國舅楊亮節的護衛下,帶著自己的兒子即宋朝二王(益王趙昰、廣王趙昺)出逃,在金華與大臣陸秀夫、張世杰、陳宜中、文天祥等會合。接著進封趙昰為天下兵馬都元帥,趙昺為副元帥。元軍統帥伯顏繼續對二王窮追不舍,于是二王只好逃到福州。不久,剛滿7歲的趙昰登基做皇帝,是為宋端宗,改元“景炎”,尊生母、宋度宗的楊淑妃為楊太后,加封弟弟趙昺為衛王,張世杰為大將,陸秀夫為簽書樞密院事,陳宜中為丞相,文天祥為少保、信國公并組織抗元工作。
趙昰做皇帝以后,元朝加緊滅宋步伐。宋端宗景炎二年(1277年),福州淪陷,宋端宗的南宋流亡小朝廷直奔泉州。張世杰要求借船,卻遭到泉州市舶司、阿拉伯裔商人蒲壽庚拒絕,隨即早有異心的蒲壽庚投降元朝。張世杰搶奪船只出海﹐南宋流亡朝廷只好去廣東。宋端宗準備逃到雷州,不料遇到臺風,帝舟傾覆,端宗差點溺死并因此得病。左丞相陳宜中建議帶宋端宗到占城(今越南南部),并自己前往占城,但后來二王數次召其回來都不返;最后逃到暹羅(今泰國),最后死在那里。端宗死后,由弟弟7歲的衛王趙昺登基,年號祥興。趙昺登基以后,左丞相陸秀夫和太傅(太子的老師)張世杰護衛著趙昺逃到崖山山,在當地成立據點,準備繼續抗元。
不久﹐在現時廣東和江西二省抗元的文天祥得不到流亡朝廷的支援,被張弘范部將王惟義在海豐縣的五坡嶺生擒,在陸地的抗元勢力覆滅。
祥興二年(1279年),元將張弘范大舉進攻趙昺朝廷。后來在不久以前攻占廣州的西夏后裔李恒也帶領援軍也加入戰事。宋軍兵力號稱20多萬,實際其中十數萬為文官、宮女、太監和其他非戰斗人員,各類船只兩千余艘;元軍張弘范和李恒也有三十萬人(一說為十萬),戰船數百艘。這時宋軍中有建議認為應該先占領海灣出口,保護向西方的撤退路線。張世杰為防止士兵逃亡,否決建議,并下令盡焚陸地上的宮殿、房屋、據點;又將下令兩千多艘宋軍船只以“連環船”的辦法用大繩索一字形連貫在海灣內,并且安排趙昺的“龍舟”放在軍隊中間。元軍以小船載茅草和膏脂,乘風縱火沖向宋船。但宋船皆涂泥,并在每條船上橫放一根長木,以抵御元軍的火攻。元朝水師火攻不成,以水師封鎖海灣,又以陸軍斷絕宋軍汲水及砍柴的道路。宋軍吃干糧十余日,飲海水之士兵嘔泄。張世杰率蘇劉義和方興日大戰元軍,張弘范擒張世杰甥韓某,以其向張世杰三次招降不果。
二月六日癸未,張弘范預備猛攻,元軍中有建議先用火炮,弘范認為火炮打亂宋軍的一字陣型,令其容易撤退。明日,張弘范將其軍分成四份,宋軍的東、南、北三面皆駐一軍;弘范自領一軍與宋軍相去里余,并以奏樂為以總攻訊號。首先北軍乘潮進攻宋軍北邊失敗,李恒等順潮而退。元軍假裝奏樂樂,宋軍聽后以為元軍正在宴會,稍微松懈了。正午時段,張弘范的水師于是正面進攻,接著用布遮蔽預先建成并埋下伏兵的船樓,以鳴金為進攻訊號。各伏兵負盾俯伏,在矢雨下駛近宋船。兩邊船艦接近,元軍鳴金撤布交戰,一時間連破七艘宋船。宋師大敗,元軍一路打到宋軍中央。這時張世杰早見大勢已去,抽調精兵,并已經預先和蘇劉義帶領余部十余只船艦斬斷大索突圍而去。趙昺的船在軍隊中間,四十三歲的陸秀夫見無法突圍,便背著8歲的趙昺跳海自殺。隨行十多萬軍民亦相繼跳海自殺。《宋史記載七日后,十余萬具尸體浮海。張世杰希望奉楊太后的名義再找宋朝趙氏后人為主,再圖后舉;但楊太后在聽聞宋帝昺的死訊在后亦赴海自殺,張世杰將其葬在海邊。不久張世杰在大風雨下溺死于平章山下(約今廣東省陽江市西南的海陵島對開海面)。
崖山之戰是宋對蒙古侵略最后一次有組織的抵抗。此戰之后,中國在歷史上第一次完全淪陷于外族。崖山之戰也是中國歷史的重要的轉折點。不少外國的史學家將宋朝滅亡視為古典意義中國的結束,所謂崖山之后,已無中國。