Năm 937, Dương Đình Nghệ bị một viên tướng của mình là Kiều Công Tiễn giết chết để đoạt chức. Được tin đó, Ngô Quyền liền kéo quân ra Bắc.
Kiều Công Tiễn vội cho người sang cầu cứu nhà Nam
Vào cuối năm 938, đoàn thuyền chiến Nam Hán do Lưu Hoằng Tháo chỉ huy kéo vào vùng biển nước ta.
Ngô Quyền cho một toán thuyền nhẹ ra đánh nhử quân Nam Hán vào cửa sông Bạch Đằng lúc nước triều đang lên.
Lưu Hoằng Tháo hăm hở đốc quân đuổi theo, vượt qua bãi cọc ngầm mà không biết.
Nước triều bắt đầu rút. Ngô Quyền hạ lệnh dốc toàn lực lượng đánh quật trở lại. Quân Nam Hán chống không nổi phải rút chạy ra biển.
Đúng lúc nước triều rút nhanh, bãi cọc dần dần nhô lên. Quân ta từ phía thượng lưu đánh mạnh xuống, quân mai phục hai bên bờ đánh tạt ngang. Quân Nam Hán rối loạn, thuyền xô vào bãi cọc nhọn, vỡ tan tành. Số còn lại, vì thuyền to nặng nên không sao thoát khỏi trận địa bãi cọc. Quân ta, với thuyền nhỏ, đã nhẹ nhàng luồn lách, xông vào đánh giáp lá cà rất quyết liệt. Quân địch bỏ thuyền nhảy xuống sông, phần bị giết, phần chết đuối, thiệt hại đến quá nửa. Hoằng Tháo cũng bị thiệt mạng trong đám loạn quân.
Vua Nam Hán, được tin bại trận trên sông Bạch Đằng, con trai là Hoằng Tháo bị chết, đã hốt hoảng, vội hạ lệnh thu quân về nước.
Trận Bạch Đằng của Ngô Quyền kết thúc hoàn toàn thắng lợi.