Từ Lào Cai, sông Hồng chảy qua Văn Yên rồi Trấn Yên (Yên Bái) và thành phố Yên Bái, sang Hạ Hòa (Phú Thọ), dọc theo ranh giới giữa Hạ Hòa, Thanh Ba, Phú Thọ, Lâm Thao, Việt Trì ở tả ngạn và Cẩm Khê, Tam Nông ở hữu ngạn. Sông chảy dọc theo ranh giới giữa tỉnh Vĩnh Phúc ở tả ngạn và Hà Nội ở hữu ngạn, qua Hà Nam, Hưng Yên, Nam Định, Thái Bình rồi đổ ra biển Đông ở cửa Ba Lạt. Tổng cộng, sông chảy qua 9 tỉnh, thành của Việt Nam.