The 23-year-old, who completed a medical on Tuesday, moves to Elland Road for a fee in the region of £25million on a five-year deal.
James started two of United's first three Premier League games of the season, including the 1-0 win at Wolves last Sunday, but his playing time was likely to be more limited this season.
United signed Jadon Sancho for £72.9million (€85m) from Borussia Dortmund and brought back Cristiano Ronaldo to the club from Juventus for an initial £12.9m (€15m).
Ole Gunnar Solskjaer also has Edinson Cavani, Mason Greenwood, Anthony Martial and Marcus Rashford as forward options, while Amad Diallo's thigh injury means he will not be loaned out in this window and Jesse Lingard is also expected to stay at the club.
James, who had the chance to join Leeds two years ago before signing for the Red Devils from Swansea City for around £15m, is likely to have secured more regular first-team football in the final full season before the 2022 World Cup in Qatar.
In total, the Wales international made 74 appearances for United in all competitions. He scored on his debut in the 4-0 league win over Chelsea in August 2019 and went on to get a further eight goals and eight assists for the club.
Although a favourite of Solskjaer for his work rate on either wing, James was one of United's less productive attacking players. He created 50 chances from open play in all competitions, three fewer than Juan Mata, who started 24 fewer matches over the same time frame.
James' tally of 17 direct goal involvements put him seventh in his time at the club, well behind Greenwood (40), Martial (44) and Rashford (63).
James is with the Wales squad for this month's international matches – a friendly with Finland and World Cup qualifiers against Belarus and Estonia – but will hope to make his Leeds debut against Liverpool at Elland Road on September 12.