Mấy ngày sau đó, vua tập trung binh lực dốc sức rèn luyện chuẩn bị nghênh địch. Sau hơn một tháng, rốt cuộc địch đã tới nhưng không phải bằng đường bộ mà là đường thủy. Năm vạn quân Lương từ Phiên Ngung do Trần Bá Tiên làm tư mã, theo là các tướng Tiêu Bột và Dương Phiêu tiến vào Giao Châu từ phía đông ở cửa sông Bạch Đằng. Vua cùng các Thái úy là Phạm Tu, Thái phó Triệu Túc, Thừa tướng là Tinh Thiều làm quân sư đem ba vạn quân ra nghênh đón, đánh chặn đường tiến công vào kinh thành của địch tại cửa Chu Diên(5). Phạm Tu dẫn đầu tiền quân làm tiên phong, Thái phó Triệu Túc cùng Trịnh Đô, Tam Cô chỉ huy trung quân, trong cùng là vua cùng Triệu Quang Phục chỉ huy hậu quân. Lực lượng hai bên chênh lệch lớn, cả về số lượng và chất lượng. Quân Lương năm vạn đều là tinh binh đã được huấn luyện, tư mã Trần Bá Tiên nổi danh tài trí mưu lược, địa vị trong triều đình phương Bắc cũng không không nhỏ, tướng Tiêu Bột dày dạn kinh nghiệm trận mạc, Dương Phiêu được phái tới làm Thứ sử Giao Châu, đến để trị một châu nổi loạn ắt không phải người đơn giản. Còn quân Vạn Xuân chỉ có ba vạn, quân trang so với địch tất nhiên không bằng, tuổi lớn trẻ đều có, thời gian huấn luyện chưa lâu, trừ một số ít đã theo vua từ trước thì phần lớn đều là tân binh chưa tới một năm. Quân địch chỉ có một yếu điểm là hành quân xa sẽ ít nhiều mỏi mệt, quân của Tiêu Bột từ Định Châu tới cách xa ngàn dặm, lại không quen thủy thổ. Sau nhiều ngày giao chiến, quân Vạn Xuân cầm cự không được, bại ở Chu Diên, phải lui về tới cửa sông Tô Lịch(6) lại bị thua, Thái úy Phạm Tu cùng mấy ngàn quân tiên phong đều đã hi sinh tại đây. Quân Vạn Xuân giờ chỉ còn lại hơn nửa, lại phải chạy về thành Gia Ninh(7) trấn thủ. Quân Lương đuổi theo vây trước cửa thành.
Lúc này đã là cuối năm, dân chúng hai nước đều có tục mừng năm mới, lại thêm hai bên lúc này đã giao chiến liền mấy tháng, quân sĩ đều mỏi mệt, người chết nhiều, thương binh cũng không ít, vì hai lý do này mà không ai nói với ai đều cùng ngưng chiến. Nhưng Trần Bá Tiên không vội đánh thành Gia Ninh còn có nguyên do khác đó là công thành luôn khó hơn đánh chiến trực diện rất nhiều.
Dù vậy nhưng yên ổn cũng không được bao lâu, một ngày sau Tết Nguyên tiêu, đêm, quân Lương bất ngờ tấn công đánh thành Gia Ninh. Cả hai bên đều đã nghỉ ngơi đủ, thay vì đánh trận nhỏ vừa mất thời gian lại khiến đối phương dốc tâm phòng thủ chi bằng đánh một trận lớn, tốc chiến tốc thắng. Quân Lương rất nhanh tiến gần tới gần cổng thành, cách chỉ còn khoảng một dặm. Triệu Túc lúc này thay thế Phạm Tu dẫn quân tiên phong nghênh chiến. Nhưng thế địch mạnh lại bất ngờ, quân tiên phong không giữ được bao lâu phải lui về thủ thành. Quân Lương được thế lại tiến công càng mạnh. Tường thành cao hơn năm trượng, chúng từ bên ngoài dùng thang leo, lại vừa dùng khúc thân gỗ to đập phá cửa thành, phía sau còn có đội cung tiễn và hai máy bắn cầu lửa. Quân ta ở trên thành ngăn đội leo tường bị trúng tiễn địch hi sinh không ít. Trung quân do Trịnh Đô và Lý Phục Man chỉ huy cũng kịch liệt ngăn địch vào thành, vua và Triệu Quang Phục ở vòng trong cùng theo dõi, hỗ trợ viện binh. Cửa thành bị phá, quân tiên phong và trung quân chặn chiến, được hồi lâu Triệu Quang Phục thấy phía trước không ổn xin xuất quân chi viện, vua đồng ý.
Quang Phục dẫn quân vừa ra tới thì đúng lúc có một mũi tên xoẹt ngang qua, quay sang nhìn đã thấy mũi tên cắm vào giữa ngực vị chỉ huy quân tiên phong. Cậu bất giác kêu lên một tiếng “Cha!”, mũi tên thứ hai bay tới nhưng Triệu Túc đã kịp tránh được. Kẻ bắn tên chính là Tiêu Bột, hắn trước khi tới Giao Châu còn e sợ đường xa thế mà mới thắng mấy trận đầu đã huênh hoang đứng giữa cổng thành giương cung. Quang Phục trực lao thẳng tới hắn nhưng mới được một đoạn thì dừng lại. Tiếng binh khí va vào nhau, tiếng hô hào kêu la của binh sĩ, tiếng lửa cháy ngùn ngụt, âm thanh xung quanh đinh tai nhức óc nhưng cậu như nghe có tiếng gọi. Cậu nghe thấy không phải bằng tai mà là nghe được từ tâm, nghe bằng một sợi cảm giác vô hình nào đó, mơ hồ nhưng vô cùng thân thuộc. Cậu quay đầu lại, là cha đang hô lớn gọi cậu quay về. Cậu vừa tới ông cũng trực khuỵu xuống, vết thương từ mũi tên trên ngực cộng thêm ra sức kêu lớn khiến ông mất sức thở mạnh. Quang Phục rất nhanh nhảy xuống ngựa đỡ lấy cha.
- Đi! Mau! Đưa Bệ hạ rời khỏi ngay bây giờ, chúng ta không thể trụ được bao lâu nữa. Trong nửa canh giờ phải rời khỏi đây. Ta sẽ cầm chân chúng rồi rút quân theo sau. – Triệu Túc không để đứa con kịp nói gì đã lên tiếng ra lệnh. Ông đã hơn 60 tuổi, cùng Nam Đế chinh chiến bao năm từ thuở đầu dấy binh, ông biết quân ta không thể cầm cự được bao lâu nữa, nếu còn không rút sẽ đều phải chết.
- Không! Cha bị thương rồi, cha trở về cùng Bệ hạ rời khỏi. Con ở đây thay người. – Quang Phục lập tức phản đối.
- ĐÂY LÀ QUÂN LỆNH! – Triệu Túc nhìn thẳng đứa con thét lớn – MAU ĐI ĐI!
Nói rồi ông đứng thẳng dậy, bẻ gãy mũi tên trên người tiếp tục xông ra chém liền mấy tên địch. Quang Phục biết ý cha đã quyết sẽ không thay đổi, tình thế cấp bách đành leo lên ngựa chạy vào trong thành.
_____________________
(5) Chu Diên: phía dưới sông Lục Đầu, vào khoảng lưu vực sông Thái Bình (Theo ĐVSKTT)
(6) Cửa sông Tô Lịch: bấy giờ sông Tô Lịch còn là một nhánh của sông Hồng mà Hồ Tây chưa có, cửa sông Tô Lịch bấy giờ vào khoảng Hồ Khẩu (gần chợ Bưởi) trên Hồ Tây ngày nay (Theo ĐVSKTT).
(7) Thành Gia Ninh: ở vùng Bạch Hạc, Việt Trì, Phú Thọ.