Năm 938, sau khi tập hợp các hào kiệt trong nước đứng về phía mình, Ngô Quyền mang quân từ Ái châu ra Bắc đánh Kiều Công Tiễn. Kiều Công Tiễn bị cô lập không chống nổi, trông chờ viện binh của Nam Hán.
Trong khi vua Nam Hán đang điều quân thì Ngô Quyền đã tiến ra thành Đại La (Tống Bình). Kiều Công Tiễn bị cô thế không đủ sức chống lại nên thành nhanh chóng bị hạ, Kiều Công Tiễn bị giết chết. Lúc đó quân Nam Hán vẫn chưa tiến vào tới biên giới.Vua Nam Hán cho con trai là Hoằng Tháo làm Tĩnh Hải quân Tiết độ sứ, đổi tước phong là Giao Vương, đem 2 vạn quân sang với danh nghĩa là cứu Công Tiễn. Lưu Nghiễm hỏi kế ở Sùng Văn hầu là Tiêu Ích. Ích nói:"Nay mưa dầm đã mấy tuần, đường biển thì xa xôi nguy hiểm, Ngô Quyền lại là người kiệt hiệt, không thể khinh suất được. Đại quân phải nên thận trọng chắc chắn, dùng nhiều người hướng đạo rồi sau mới nên tiến."Ngô Quyền cho quân sĩ đóng cọc có bịt sắt nhọn xuống lòng sông Bạch Đằng. Khi thuỷ triều lên, bãi cọc không bị lộ. Ngô Quyền dự định nhử quân địch vào khu vực này khi thủy triều lên và đợi nước triều rút xuống cho thuyền địch mắc cạn mới giao chiến.Vào một ngày cuối đông năm 938, trên sông Bạch Đằng, vùng cửa biển và hạ lưu, cả một đoàn binh thuyền do Hoằng Tháo chỉ huy vừa vượt biển tiến vào cửa ngõ Bạch Đằng. Quân Nam Hán thấy quân của Ngô Quyền chỉ có thuyền nhẹ, quân ít tưởng có thể ăn tươi, nuốt sống liền hùng hổ tiến vào. Ngô Quyền ra lệnh cho quân bỏ chạy lên thượng lưu. Đợi đến khi thủy triều xuống, ông mới hạ lệnh cho quân sĩ đổ ra đánh. Thuyền chiến lớn của Nam Hán bị mắc cạn và lần lượt bị cọc đâm thủng gần hết. Lúc đó Ngô Quyền mới tung quân ra tấn công dữ dội. Quân Nam Hán thua chạy, còn Lưu Hoằng Tháo bỏ mạng với hơn một nửa quân sĩ.Vua Nam Hán đang cầm quân tiếp ứng đóng ở biên giới mà không kịp trở tay đối phó. Nghe tin Hoằng Tháo tử trận, Nghiễm kinh hoàng, đành "thương khóc thu nhặt quân còn lại mà rút lui" (Đại Việt sử ký toàn thư). Từ đó nhà Nam Hán bỏ hẳn mộng xâm lược Tĩnh Hải quân. Lưu Cung cũng than rằng cái tên "Cung" của ông là xấu