United are set to pay £72.9 million ($101m) for the England winger's move, according to sources. There are no add-ons as part of the deal.
Sources have also told ESPN that Sancho's former club and United rivals Manchester City will receive 15% of the profit made by Dortmund on the transfer, set to be around £9.7m.
Talks with Sancho's representatives, which began last summer, have gone smoothly and the 21-year-old will undergo a medical before signing a contract which will keep him at Old Trafford until at least 2026.
Sancho is currently on international duty with England at Euro 2020 and will continue to prepare for Saturday's quarterfinal against Ukraine in Rome.
United are not expected to officially announce the deal until after his involvement in the tournament is over. Among other things, there are quarantine issues surrounding him leaving the England training bubble then rejoining it, which he would need to do to have a medical and sign his contract.
But Sancho is expected to be part of Ole Gunnar Solskjaer's squad in time for the start of the Premier League season on Aug. 14.
It brings to an end a transfer saga that has gone on for nearly 18 months. Sancho was Solskjaer's top transfer target last summer, and although Sancho expressed his desire to move, United could not agree a fee with Borussia Dortmund.
Negotiations between the two clubs have progressed more quickly this time around.
Sancho has spent four years in Germany after arriving from Manchester City in 2017. He scored 50 goals in 137 games and was named in the Bundesliga team of the year in both 2019 and 2020. Despite coming through City's academy, he is yet to make a Premier League appearance.