公元13世纪。元朝向南宋发起进攻。1273年,元兵夺取了南宋的战略重镇襄阳,控制了长江中下游。1274年,元朝皇帝忽必烈发兵20万,分两路南下,一路攻打扬州以牵制宋军。另一路为主力攻打鄂州(武昌),至12月,夺取鄂州。1275年,元军攻陷南宋的都城杭州。南宋朝廷在当朝太后的率领下向元军投降。几次大战役过后,元军夺得大量战船,组建了强大的水军。
1278年南宋朝廷在元朝大军的追逼下退到了广东新会、崖山一带,幼帝赵日丙及二十多万人马驻扎于此,另有战船一千多艘。元朝皇帝忽必烈为了最终消灭南宋,任命张弘范为主帅、李恒为副帅,率水、陆兵马二万五千,在分别攻取了漳、潮、惠三州和广州后,分海、陆两路向崖山进逼。
宋军主帅张世杰之所以选中崖山驻扎,是认为崖山一带濒临大海,其南面有易守难攻的崖门水道,而且这一带海域风平浪静,便于驻守。然而在大陆几乎全部落入元军之手的情况下,背海驻守无疑是一大失策,而且张世杰还犯下一个致命的错误,他下令将一千多艘战船用铁索相连,分几排沿崖山排开阵势,完全丧失了机动性。
元朝至元十六年(1279年)正月,李恒带领元军在崖山东侧偷袭登陆,将山上的宋军行营兵寨悉数烧毁,并切断了宋军的淡水来源和粮草供应,迫使宋军全部退至海上。宋军为夺回水源和粮道,多次反攻,均难以奏效,宋军就此陷入了粮、水、柴断绝的绝境,在饥饿和伤病的侵扰下,宋军的战斗力大为降低。
二月六日(1278年3月19日)凌晨,元军副帅李恒率战船顺着退潮从北面顺流而下,进攻宋军船阵,但战果不大,至中午涨潮时又顺潮北退,而已经布置于南、西、西南三个方向的元军在张弘范的带领下则顺潮水北进,从崖山与汤瓶山之间的崖门水道向宋军船阵展开攻击,很快就夺取了宋军前阵并烧毁了宋军几十艘战船。此时宋军主帅张世杰在慌乱之下又下了一道错误的命令,将两侧战船调往中军,更使宋军阵形大乱。
午后,海面突降大雨,宋军急忙砍断铁索,趁着雨雾开始突围,但仅有张世杰带着十几艘大船冲出元军重围,包括宋帝御船在内的宋军大部被元军越围越紧,丞相陆秀夫在绝望之下先逼妻儿投海自尽,然后自己抱着宋幼帝跳海而亡。逃出重围的张世杰后来在阳江南面的海陵岛附近遇上风暴,船翻人亡。
此役,元军共烧毁、击沉宋军战船二百余艘,缴获八百余艘,俘虏宋军两万多人,宋军战死十万人以上。宋朝皇室在临安(今杭州)向元军统帅伯颜投降后,宋廷残部南逃,经历三年二帝,就此彻底灭亡了。