一千多艘宋軍船隻以「連環船」方式屯於海灣內,將趙昺的「龍舟」放在軍隊中間。
張弘范深諳兵法,令元軍以小船載茅草和膏脂,乘風縱火,沖向宋船。但張世傑有所防範,將宋船塗泥,並在每條船上橫放一根長木,抵禦元軍火攻。
元朝水師火攻不成,採取封鎖之法,以陸軍斷絕宋軍汲水及砍柴的道路。宋軍被斷淡水,吃乾糧十餘日,被迫飲食海水,造成嘔泄腹瀉,戰鬥力下降。
經過數輪激戰,張弘范想盡一切辦法,生擒張世傑外甥韓某,向張世傑三次招降,均未果。又命被俘的文天祥寫書勸降,文天祥卻誓死不從,反以被俘渡江之時寫的一首過零丁洋相送。
辛苦遭逢起一經,干戈寥落四周星。山河破碎風飄絮,身世浮沉。惶恐灘頭說惶恐,零丁洋里嘆零丁。人生自古誰無死留取丹心照汗青。
張弘時看後,也不再相逼文天祥,於是一心與宋軍決戰。將其軍分成四份,在宋軍的東、南、北三面皆駐一軍,他自領一軍與宋軍正面相對,只相隔一里開外。並反其道而行之,以奏樂為以總攻訊號。
當時,乘潮進攻宋軍北邊的李恆等元軍失敗,順潮而退。張弘范即令元軍假裝奏樂,宋軍聽後以為元軍正在宴會,稍微鬆懈了。卻不想,張弘范的水師以奏樂為號,開始正面進攻,用幔布遮蔽預先建成並埋下伏兵的船樓,以鳴金為前進號令。
宋軍聽見鳴金聲,以為元軍兵退。卻不想,元軍的伏兵負盾俯伏,在矢雨下駛近宋船幾乎在撞上宋軍船隻後,才撤布交戰。一時間連破七艘宋船,宋師大敗,元軍一路打到宋軍中央。
這時,張世傑早見大勢已去,抽調精兵,命斬斷大索突圍而去。但為時已晚,小皇帝趙昺的船隻被夾於中間,衝突不出。最後,左丞相陸秀夫見無法突圍,為避免受辱,便背着八歲的趙昺投海而亡。
這之後,便發生了中華歷史上最壯烈的一幕。皇帝身亡後,隨行十多萬軍民亦相繼跳海,壯烈殉國這可不是誇張,而是宋史記載的史實,「此戰,十餘萬具屍體浮海。」
戰後,僅張世傑僥倖逃出,本希望以楊太后的名義再找宋朝趙氏後人為主,再圖後舉。卻不想楊太后在聽聞趙昺的死訊後,赴海自殺。張世傑收斂其遺體後,將其葬在海邊,哀傷而去。
之後,張弘范收兵,所懼者唯張世傑一人。其後,不知是不是上天真要亡宋,張世傑乘坐之船竟然被颶風摧毀,一代名將不幸溺卒於平章山下。於是,「世傑身死,宋亡」。
次日,海上浮屍十萬。陸秀夫的屍體被百姓找到,安葬起來,小皇帝趙昺的屍體則為元軍尋得,只見一眉清目秀的小兒身穿龍袍,頭戴皇冠,身上還掛着一個玉璽。
元兵將玉璽交給張弘范,張弘范確認這小兒是趙昺,派人尋回,然而趙昺的屍體已經下落不明。據說被百姓埋葬在了廣東深圳赤灣村里,至今仍存。
滅宋後,張弘范欣喜若狂,耀武揚威,命人在崖山岩壁上雕刻「鎮國大將軍張弘范滅宋於此」十二個大字。然而似有天意,他沒有得意多久,次年便病死。後人因恥於張弘范先降元後攻宋的所做所為,將其大字改為「宋將張弘范滅宋於此」。
這就是所謂「崖山之後,已無中國」,此役之後,宋朝戶籍簿上四分之三之人都被屠殺。當時的精英,要麼隱居海外,要麼投海自盡,中國在歷史上第一次完全淪陷於外族。
所以,不少史學家將崖山之戰作為中國歷史的重要的轉折點。中國**發展的進程被打斷,曾經高度發達的經濟、文化、科技、科舉與世族相結合的官僚制度、開始受限的皇權、先進的政治制度等等都中斷了,很多國外史學家甚至將宋朝滅亡視為古典意義中國的結束。
宋朝既是中國傳統文化和經濟、科技最發達的朝代,也是中國資本主義開始萌芽的時代。那個時代,對於中國而言,宋朝就是一個文藝復興時期。中國的文化這個時候是一種積極的、開放的文化。漢朝國強,唐朝武盛,宋朝文旺。中國文化到宋達到了巔峰。宋是中國歷史上最接近現代管理的朝代,可是,這個迎來中國文化巔峰的時代,隨着宋的滅亡而凋殘。
自宋以後,那個自信、開放、寬容的民族不見了。在元朝,北方漢人是三等臣民