Hernandez, who spent last season on loan at Real Madrid, agreed a three-year contract with the Bundesliga club just in time to beat the deadline on the last day of the German transfer window.
The 27-year-old was on the bench for United's 2-1 defeat at Swansea City on Sunday, but he hadn't started for the Premier League team for more than a year.
He returned to United in the close-season after scoring nine goals during his spell with Real, including the winner in their Champions League quarter-final against rivals Atletico Madrid, but manager Louis van Gaal has allowed him to leave permanently this time.
“I know two of the biggest leagues in Europe in the English Premier League and the Primera Division in Spain and now I want to experience the Bundesliga,” Hernandez told Leverkusen's website.
“I've heard a lot about the fantastic stadia in Germany and about the unique fans they have there.
“The Bundesliga is an extremely attack-minded league and it's particularly enticing for me.
“It's fantastic that I can now play for a club like Leverkusen, who are obviously known to me from the Champions League.
“Bayer Leverkusen is a big opportunity for me and I can and want to achieve a lot here.”
Leverkusen were drawn alongside Barcelona, Roma and BATE Borisov in Group E of the Champions League last week and Hernandez is being relied on to help the his new side make an impact in Europe's elite club competition.
The club's general manager Michael Schade said: “After we finally secured our place in the Champions League, we wanted to send out a clear signal with our attack, and we've succeeded in doing this with Javier Hernandez.”
Hernandez scored 59 goals in 156 appearances for United after signing from Chivas in 2010 and won the Premier League title in 2011 and 2013. – AFP
Original source: Hernandez makes Leverkusen switch