Nguyễn Vương đánh được trận thủy ở Thị Nại rồi, bèn sai Nguyễn Văn Trương đem thủy quân ra đánh Quảng Nam, Quảng Nghĩa, và lại thấy quân Tây Sơn vây thành Quy Nhơn một cách cẩn mật lắm, đánh phá không được. Vương cho người lẻn vào thành bảo Võ Tính và Ngô Tòng Chu bỏ thành mà ra. Nhưng Võ Tính phúc thư lại rằng: quân tinh binh của Tây Sơn ở cả Quy Nhơn, vậy xin đừng lo việc giải vây vội, hãy nên kíp ra đánh lấy Phú Xuân thì hơn.
Nguyễn Vương bèn để Nguyễn Văn Thành ở lại chống giữ với Trần Quang Diệu và Vũ Văn Dũng, rồi đem đại quân ra đánh Phú Xuân.
Bấy giờ nhà Tây Sơn cũng bối rối lắm: ở Nghệ An thì có tướng nhà Nguyễn là Nguyễn Văn Thụy và Lưu Phúc Tường đem quân Vạn Tượng sang đánh phá; ở Thanh Hóa thì có phiên thần là Hà Công Thái khởi binh giúp nhà Nguyễn; ở Hưng Hóa thì có thổ ti là Phan Bá Phụng nổi lên quấy nhiễu. Còn các trấn ở Bắc Hà thì rối vì những việc tông giáo; các đạo trưởng và đạo đồ đạo Thiên Chúa cũng nổi lên, có ý giúp nhà Nguyễn; dân tình thì bị quan quân nhũng lạm hà hiếp, ai ai cũng có lòng oán giận. Ở Phú Xuân, vua thì hèn, các quan đại thần thì cứ ghen ghét nhau rồi tìm kế giết hại lẫn nhau, việc chính trị không sửa sang gì cả. Bởi vậy nhân dân đều mong mỏi chúa Nguyễn, cho nên có câu hát rằng: "Lạy trời cho chóng gió nồm, để cho chúa Nguyễn giong buồm thẳng ra".
Nguyễn Vương thấy lòng người đã không theo Tây Sơn nữa, bèn đem binh ra đánh Phú Xuân, đến tháng năm (1801), thủy sư vào cửa Tư Dung. Tướng Tây Sơn là phò mã Nguyễn Văn Trị đem quân ra lập đồn giữ ở núi Quy Sơn. Tiền quân nhà Nguyễn đánh không được. Nguyễn Vương sai Lê Văn Duyệt và Lê Chất đem thủy binh ra đánh tập hậu. Nguyễn Văn Trị bỏ đồn mà chạy. Quân Nguyễn Vương vào cửa Nguyễn Hải (cửa Thuận An) rồi kéo lên đánh thành Phú Xuân. Vua Tây Sơn phải ngự giá đem quân ra chống giữ, hai bên đánh nhau đến giữa trưa, thì quân Tây Sơn vỡ tan. Quân Nguyễn Vương tiến lên đuổi đánh, thu phục được đô thành. Bấy giờ là ngày mồng 3 tháng 5 năm tân dậu (1801).
Nguyễn Vương vào thành Phú Xuân treo biển yên dân, rồi sai Lê Chất đem bộ binh đuổi đánh quân Tây Sơn, sai Nguyễn Văn Trương đem thủy binh ra chặn ở Linh Giang, để đánh quân Tây Sơn chạy ra Bắc. Lại sai Phạm Văn Nhân ra giữ cửa Nguyễn Hải, sai Lưu Phúc Tường đem quân đi 167 đường Cam Lộ sang Vạn Tượng truyền bảo các Mường giữ đường yếu lộ không cho quân Tây Sơn chạy tràn sang.