The winger, who has scored four times and made 12 assists for Chelsea in 74 Premier League appearances, arrived in Leverkusen on Monday morning for a medical.
Hudson-Odoi, who has played three times for England, has been a bit part player under Chelsea manager Thomas Tuchel and wants to play more regularly ahead of the Fifa World Cup in November.
According to German sports magazine Kicker, the deal was held up for several days as Leverkusen held out for a purchase option, which Chelsea refused to insert.
Kicker reports that the German club relented, allowing the deal to go through on Monday.
Hudson-Odoi, who is under contract at Chelsea until 2024, has previously been linked with moves to Bundesliga heavyweights Bayern Munich and Borussia Dortmund.
The London-born player is a product of Chelsea’s junior system, having joined the club at the age of seven.
Leverkusen have endured a poor start to the season, with elimination from the German Cup and losses in their opening three Bundesliga fixtures.
Leverkusen picked up their first points of the season with a 3-0 win away at Mainz on Saturday.
Leverkusen have been drawn against Porto, Atletico Madrid and Club Brugge in the Champions League.