The Mexico striker, who spent last season on loan at Real Madrid, has signed a contract until the summer of 2018 at the BayArena after the move went through ahead of the transfer deadline in Germany.
Hernandez, 27, was on the bench for United’s 2-1 Premier League defeat at Swansea on Sunday but last started for the team more than a year ago.
He returned to United 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 again allowed him to leave.
Hernandez told the Leverkusen website: “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.
“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.
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.