Khi Ô Mã Nhi dẫn đoàn thuyền tiến vào sông Bạch Đằng nhân lúc nước lớn, thủy quân nhà Trần tràn ra giao chiến, rồi giả thua chạy vào sâu bên trong. Ô Mã Nhi trúng kế khích tướng nên thúc quân ra nghênh chiến, các tướng Phàn Tham Chính, Hoạch Phong cũng ra tiếp ứng. Khi thuyền quân Nguyên đã vào sâu bên trong sông Bạch Đằng, tướng Nguyễn Khoái dẫn các quân Thánh Dực ra khiêu chiến và nhử quân Nguyên tiến sâu vào khúc sông đã đóng cọc, trong khi quân Trần đợi cho thủy triều xuống mới quay thuyền lại và đánh thẳng vào đội hình địch. Bình chương Áo Lỗ Xích của Nguyên Mông đã bị bắt sống trong cuộc chiến đấu quyết liệt của quân Thánh Dực.[2]
Thủy quân Đại Việt từ Hải Đông - Vân Trà từ các phía Điền Công, Gia Đước, sông Thái, sông Giá nhanh chóng tiến ra sông Bạch Đằng, với hàng trăm chiến thuyền cùng quân lính các lộ dàn ra trên sông và dựa vào Ghềnh Cốc thành một dải thuyền chặn đầu thuyền địch ngang trên sông. Trong lúc thủy chiến đang diễn ra dữ dội thì đoàn chiến thuyền của hai vua Trần đóng ở vùng Hiệp Sơn (Kinh Môn, Hải Dương) bên bờ sông Giáp (sông Kinh Thầy, vùng Kinh Môn, Hải Dương) làm nhiệm vụ đánh cầm chừng và cản bước tiến của địch, cũng tấn công từ phía sau khiến quân Nguyên càng lúng túng và tổn thất rất nặng. Theo Đại Việt Sử ký Toàn thư, "nước sông do vậy đỏ ngầu cả"[2]. Bị bất lợi hoàn toàn, rất nhiều thuyền chiến của quân Nguyên bị cháy rụi[1]. Bị tấn công tới tấp trên sông, một số cánh quân Nguyên bỏ thuyền chạy lên bờ sông bên trái của Yên Hưng để tìm đường trốn thoát, nhưng vừa lên tới bờ họ lại rơi vào ổ phục kích của quân Trần, bị chặn đánh kịch liệt. Trời về chiều khi giao tranh sắp kết thúc, Ô Mã Nhi cùng với binh lính dưới quyền chống cự tuyệt vọng trước sự tấn công của quân Trần, vì quân Nguyên của Thoát Hoan không tới cứu viện, nên đạo quân này hoàn toàn bị quân Trần tiêu diệt. Theo Nguyên sử, truyện của Phàn Tiếp chép rằng kịch chiến xảy ra từ giờ mão đến giờ dậu, tức là từ sáng kéo dài đến chiều tối mới kết thúc. Nguyên Sử có chép về tướng Nguyên Phàn Tiếp: "Tiếp cùng Ô Mã Nhi đem quân thủy trở về, bị giặc đón chặn. Triều sông Bạch Đằng xuống, thuyền Tiếp mắc cạn. Thuyền giặc dồn về nhiều, tên bắn như mưa. Tiếp hết sức đánh từ giờ mão đến giờ dậu. Tiếp bị thương, rớt xuống nước. Giặc móc lên bắt, dùng thuốc độc giết".
Bia Lý Thiên Hựu cũng chép: "Tháng ba, đến cảng Bạch Đằng, người Giao chắn chiến hạm ngang sông để chống cự quân ta, đến lúc nước triều rút, thuyền không tiến được, quân tan vỡ…".[6] Lý Thiên Hựu là 1 viên tướng Nguyên cũng tham gia trận Bạch Đằng.