元军之手的情况下,背海驻守无疑是一大失策,而且张世杰还犯下一个致命的错误,他下令将一千多艘战船用铁索相连,分几排沿崖山排开阵势,完全丧失了机动性。
李恒带领元军在崖山东侧偷袭登陆,将山上的宋军行营兵寨悉数烧毁,并切断了宋军的淡水来源和粮草供应,迫使宋军全部退到海上。宋军为夺回水源和粮道,多次的反攻,均难以奏效,宋军就此陷入了粮、水、柴断绝的绝境,在饥饿和伤病的侵扰之下,宋军的战斗力大为降低。
元军从海上采取火攻,但是宋军早有预防,在一些战船上涂抹海泥,加上将士拚死的抵抗,元军并未占到多少便宜。不过经过几次攻打,元军迫使宋军阵形收缩,元军水师则占据了崖门外海,与崖山上的元军一起形成了对宋军的海陆包围。
二月六日的凌晨,元军副帅李恒率领战船顺着退潮从北面顺流而下,进攻宋军船阵,但战果不大,到了中午涨潮时又顺潮北退,而已经布置于南、西、西南三个方向的元军在张弘范的带领下则顺潮水北进,从崖山与汤瓶山之间的崖门水道向宋军船阵展开攻击,很快就夺取了宋军前阵并烧毁了宋军几十艘战船。此时宋军主帅张世杰在慌乱之下又下了一道错误的命令,将两侧战船调往中军,更使宋军阵形大