Vương triều nhà Hồ lãnh đạo quân dân kháng chiến chống quân Minh xâm lược trong bối cảnh gặp khá nhiều bất lợi. Ở phương bắc, vùng đệm Vân Nam đã hoàn toàn không còn tác dụng. Vân Nam giờ đây đã là vùng đất được khai thác mạnh mẽ, đủ điều kiện để làm một bàn đạp vững chắc cho cuộc xâm lược xuống phía nam. Quân Minh khác với các đội quân phương bắc trước kia, chúng có thể tiến quân từ cả Vân Nam và Quảng Tây vào nước ta với quy mô lớn mà vẫn đảm bảo được đường hậu cần thông suốt. Ở phương nam, các châu mới sáp nhập từ Chiêm Thành là Thăng, Hoa, Tư, Nghĩa còn đầy bất ổn, cùng với sự thù địch của quân Chiêm Thành khiến cho Đại Ngu phải san sẻ một phần binh lực đáng kể phòng thủ biên thùy phía nam. Trong nước, nhân dân nhiều người không đồng lòng, một số kẻ chực chờ nối giáo cho giặc… Tuy vậy, với quân đội đông đảo, vũ khí trang bị mạnh, thành trì vững chắc, nhà Hồ không phải là không có cửa thắng trong cuộc chiến.
Đại Ngu dùng Thần Cơ Sang Pháo, quân Minh chết la liệt dưới chân thành
Biết quân Minh tiến sang, đầu não triều đình cùng nhau bàn bạc kế sách chống giặc. Bấy giờ có tướng người Chăm trong quân là Bố Đông hiến kế nên đem tinh binh lên đón đánh quân Minh ngay tại các cửa ải biên giới, không cho chúng tiến xuống đồng bằng. Các tướng khác của nhà Hồ vì sợ sức mạnh kỵ bộ của quân Minh nên không theo kế của Bố Đông. Vua Hồ Hán Thương chỉ bố trí một ít quân biên phòng giữ các cửa ải, còn đại quân thì dựa vào thành trì và chiến lũy dọc sông Thao, sông Lô, sông Hồng mà bày trận thủy bộ dựa vào nhau.
Quân Minh từ hai hướng Vân Nam, Quảng Tây bắt đầu tấn công từ cuối thu năm 1406. Từ Vân Nam, Mộc Thạnh cùng Tham tướng Lý Bân đem binh phu 40 vạn đánh vào cửa ải Phú Lệnh (thuộc Hà Giang ngày nay). Đường đi từ hướng này xuống đồng bằng trung châu hiểm trở, quân Minh phải xẻ núi, phá rừng mà đi. Mộc Thạnh sau đó dẫn quân men theo dọc bờ sông Thao tiến xuống. Trương Phụ cùng Tham tướng Trần Húc từ Quảng Tây cũng đem 40 vạn binh phu tấn công ải Pha Lũy (tức ải Nam Quan), theo đường Lạng Sơn tiến xuống đồng bằng. Trương Phụ hành quân rất quy củ. Quân Minh chia làm nhiều toán, cứ toán này đi trước mai phục, toán sau hành quân, thay phiên cho nhau. Binh lực Đại Ngu ở ngoài biên cảnh quá mỏng và yếu, không cản nổi giặc.
Đến tháng 11/1406, quân của Mộc Thạnh tiến đóng quân tại Bạch Hạc (Việt Trì, Phú Thọ ngày nay), đối trận với quân Đại Ngu ở thành Đa Bang hai bên bờ sông Lô, sông Hồng. Trương Phụ hành quân từ Lạng Sơn xuống Tiên Phúc, đi đường tắt đến Bạch Hạc. Quân Minh hai cánh họp làm một, đóng trại dày đặc ở Bạch Hạc. Tả tướng quốc Hồ Nguyên Trừng cầm quân đóng dọc sông Hồng, cùng liên kết với quân của Thiêm văn triều chính Hồ Đỗ đóng ở sông Trú Giang, dưới sông dàn chiến thuyền, trên bờ bộ binh dàn dọc các chiến lũy, cứ điểm để chặn giặc. Quân Đại Ngu chủ ý đánh lâu dài cho quân Minh mệt mỏi, hết lương phải tự rút lui. Trương Phụ án binh bất động không giao chiến, chờ quân ta sang đánh trước. Hồ Nguyên Trừng cũng chẳng buồn cho quân sang đánh, chỉ giữ vững trận địa. Vì thế nên hai bên tuy dàn quân rầm rộ mà suốt nhiều ngày không giao chiến một trận nào.
Trương Phụ theo kế của Chu Năng (đã chết trên đường hành quân), đem những bản văn tuyên truyền khắc vào các tấm ván rồi thả trôi sông để lung lạc tinh thần quân dân Đại Ngu. Các bản văn này có nội dung kể tội triều đình nhà Hồ, nói rằng quân Minh sang chỉ để đánh họ Hồ, tìm người họ Trần để lập làm vua. Bất chấp những lời dối trá, đại bộ phận nhân dân trên những vùng quân Minh đi qua dọc theo sông Lô đều làm kế vườn không nhà trống theo lệnh triều đình, tuyệt nguồn cung ứng của giặc. Tuy nhiên, những bản văn đã làm lung lạc được một số bộ phận binh lính nhà Hồ và dụ dỗ được một số trí thức bất đắc chí. Bọn Mạc Địch, Mạc Thúy, Mạc Viễn, Nguyễn Huân… đem gia quyến theo hàng giặc, làm chỉ điểm cho quân Minh, được Trương Phụ trao cho quan tước.
Cuối đông năm 1406, quân Minh bắt đầu tấn công. Trương Phụ đem quân đánh úp vào khối quân của Hồ Xạ, chỉ huy quân Tả Thánh Dực đóng tại bãi sông Bạch Hạc. Hồ Xạ bị đánh gấp, các quân khác không kịp tới cứu nên phải cho quân rút lui về bờ nam sông Hồng dàn trận. Quân Minh chiếm được Việt Trì, toàn bộ bờ bắc sông Bạch Hạc. Lúc này, trận thế quân Đại Ngu vẫn còn khá vững. Kế đó, đêm 15/1/1407, quân Minh khiêng thuyền ra bờ sông định vượt sông tấn công. Tướng quân Trần Đĩnh dẫn thủy quân ra đánh, giặc phải rút chạy sâu vào bờ. Tướng Minh liền bắt những binh lính đã rút lui đem ra xử theo quân pháp. Các tướng sĩ nước Minh thấy vậy, đều sợ tội mà liều chết để đánh.
Chỉnh quân xong rồi, đêm 17/1/1407 Trương Phụ lại sai quân âm thầm vượt sông đánh úp quân Đại Ngu ở bãi sông Mộc Hoàn phía bờ nam. Nơi này là vị trí chiến lược quan trọng, do hiệu quân Tả Thần Dực tinh nhuệ chốt giữ, dưới quyền chỉ huy của tướng Nguyễn Công Khôi. Đương lúc chiến sự hệ trọng, Nguyễn Công Khôi lại không biết giữ mình. Khi quân Minh thình lình tấn công, Khôi đang vui chơi nữ sắc, lơ là phòng bị. Vì sự tắc trách tai hại này, quân Tả Thần Dực đã không kịp trở tay, bị quân địch diệt gọn, thuyền bị cháy gần hết. Đại Việt Sử Ký Toàn Thư miêu tả trận đánh “lặng im không có tiếng động của chiến trận”. Vì Mộc Hoàn bị thất bại nhanh ngoài dự kiến, các khối quân Đại Ngu đóng gần đó không làm sao tới ứng cứu kịp. Quân Minh chiếm được bãi sông rồi, bèn cho bắc cầu phao ồ ạt đổ quân sang bờ nam. Tả tướng quốc Hồ Nguyên Trừng lệnh cho đại quân rút vào trong thành Đa Bang cố thủ.
Đầu năm 1407, Mộc Thạnh bàn với Trương Phụ: “Những hàng rào gỗ mà bên địch dựng lên đều sát liền sông, quân ta không thể tiến lên được. Chỉ có Đa Bang là nơi đất cát bằng phẳng có thể đóng quân, chỗ ấy tuy thành đất khá cao, bên dưới có mấy tầng hào, nhưng khí giới đánh thành của ta đều đầy đủ, đánh mà chiếm lấy cũng có phần dễ”.
Trương Phụ nghe theo, triệu tập toàn quân truyền lệnh: “Quân giặc chỉ cậy có thành này, mà chúng ta lập công cũng ở một trận này; tướng sĩ nào trèo lên thành được trước, sẽ đặc cách hậu thưởng không câu nệ theo thứ bậc thông thường”.
Truyền lệnh xong rồi, Trương Phụ chia quân làm hại đạo, nhân đêm tối hẹn nhau công phá thành Đa Bang. Đạo thứ nhất do Trương Phụ chỉ huy cùng với Hoàng Trung, Thái Phúc dẫn quân Minh tấn công từ phía tây bắc. Đạo thứ hai do Mộc Thạnh cùng Trần Tuấn đánh mặt đông nam. Quân Minh âm thầm tiến quân gần thành rồi đốt đuốc, thổi tù và làm hiệu, dùng thang vân thê (loại thang chuyên dụng để công thành) mà trèo lên phá thành. Lúc này quân Đại Ngu còn khá mạnh, đóng dọc sông rất nhiều nhưng hành động bất nhất, một số tướng lĩnh vẫn không đem quân tới cứu khi thành Đa Bang bị công phá dữ dội.
Tuy vậy, tại thành Đa Bang, quân Đại Ngu dưới sự chỉ huy của Tả tướng quốc Hồ Nguyên Trừng đã chống trả rất dũng cảm. trận đánh này, hỏa khí của cả hai bên đều thi thố hết sức. Quân Minh có trang bị nhiều súng hỏa mai cầm tay và cả súng đại bác, gây cho quân Đại Ngu rất nhiều thiệt hại. Phía Đại Ngu cũng không kém cạnh, với sức mạnh vượt trội của súng đại bác mang tên Thần Cơ Sang Pháo do Hồ Nguyên Trừng chế tác, quân ta trút bão lửa lên đầu quân xâm lược không khoan nhượng. Chiến sự diễn ra rất đẫm máu, quân Đại Ngu chết nhiều nhưng vẫn kiên cường tử thủ, gây thiệt hại nặng nề cho đối phương. Hai bên đánh nhau từ tối đến sáng, quân Minh chết la liệt dưới chân thành, xác chất cao đến ngang mặt thành nhưng vẫn không tên nào dám thoái lui, vì Trương Phụ dùng quân pháp rất nghiêm.
Chiến sự đương lúc dằn co dữ dội thì tướng lĩnh Đại Ngu mắc sai lầm. Tướng chỉ huy quân Thiên Trường là Nguyễn Tông Đỗ muốn dùng tượng binh thủ thắng, bèn đục thành lùa voi ra đánh. Quân Minh thấy voi, ban đầu hơi núng thế. Nhưng sau đó, Trương Phụ cho kỵ binh cưỡi ngựa vẽ hình sư tử tấn công, lại dùng súng đại bác và hỏa tiễn bắn tới tấp vào voi. Voi của Đại Ngu không được huấn luyện kỹ, nghe tiếng súng thì hoản loạn, co vòi chạy ngược vào trong thành. Quân Minh tung kỵ binh theo đường voi chạy đánh thẳng vào thành.
Thế trận của quân Đại Ngu bỗng chốc hỗn loạn, thành cơ hồ không thể giữ nổi. Tình thế buộc Hồ Nguyên Trừng phải hạ lệnh toàn quân bỏ thành rút lui về giữ sông Hoàng Giang. Bấy giờ là ngày 20/1/1407, thành Đa Bang rơi vào tay giặc. Các tướng Lương Dân Hiến, Thái Bá Nhạc tử trận. Quân Minh thu được 12 thớt voi, rất nhiều vũ khí, thuyền bè. Các tướng khác của Đại Ngu đóng quân dọc sông Hồng hay tin Đa Bang thất thủ cũng đều kéo quân rút theo Hồ Nguyên Trừng cả. Thành Đông Đô, kinh đô cũ của nước Đại Việt lúc này bị bỏ ngỏ, nhân dân không kịp sơ tán.
Quân Minh theo dòng sông Phú Lương tiến quân xuống, tràn vào Đông Đô, bắt cóc phụ nữ, cướp bóc vàng lụa, lương thực, cảnh tượng vô cùng bi thảm. Chúng còn bắt con trai đem thiến để làm hoạn quan, đặt quan lại trấn trị, vơ vét tiền đồng các xứ và cho người chạy trạm báo tin về kinh đô Kim Lăng (Nam Kinh) của nước Minh.Những nhân dân trước đây còn phân vân về động cơ của giặc khi đem quân sang nước ta, thì nay được dịp hiểu rõ bản chất giả nhân giả nghĩa, tàn ngược vô đạo của quân xâm lược…