Diego Simeone's side had gone four home matches in all competitions without a win and had only scored once in their past three games at Wanda Metropolitano.
They rarely looked like ending that particular run against a Leverkusen side who lost their first two Group D matches and were beaten 3-0 by Eintracht Frankfurt last Friday, until Morata's powerful 78th-minute header proved too much for Lukas Hradecky.
Atletico lost Jose Gimenez to injury after only 15 minutes but Jan Oblak's goal was relatively untroubled, despite the visitors enjoying most of the first-half possession.
Hradecky made a routine stop from a Renan Lodi shot but Simeone's forward line seemed blunted without the injured Joao Felix, with Diego Costa's frustrations compounded when he went to ground easily under pressure from Mitchell Weiser and failed to win a penalty.
Simeone threw on Morata for Koke with 20 minutes left in a bid to spark life into the attack, and the former Chelsea striker made a swift impact when he pressured Hradecky into clearing a simple ball out of play.
And Morata made the all-important breakthrough, heading home only his second goal of the season from six yards out after meeting Lodi's cross from the left.
What does it mean? Atleti closing in on last 16
The win puts Atletico on seven points from three games and gives them a promising chance of reaching the next round, even though two of their remaining three group games are away.
Leverkusen, meanwhile, are bottom of the table after three defeats in a row, leaving their hopes of progressing hanging by a thread, with Lokomotiv Moscow on three points and Juventus on four ahead of their meeting in Turin.
Morata makes the difference at last
Morata's last Champions League goal was against Atletico for Chelsea back in September 2017. This could be a hugely important one in terms of getting him back to form.
Leverkusen's highly prized 20-year-old Kai Havertz offered next to no threat in his 76 minutes on the pitch, with no shots and no chances created from the number 10 position.
These teams meet again on matchday four on November 6 in Leverkusen. More immediately, Atletico host Athletic Bilbao in LaLiga on Saturday, when Leverkusen take on Werder Bremen.