Stuttgart made the brighter start at the Mercedes-Benz Arena, with Daniel Didavi whipping in a wicked free-kick that Wendell did well to nod behind for a corner. Didavi then slipped a lovely ball through for Alexander Esswein, whose fierce effort was palmed behind by Leverkusen keeper Lukas Hradecky. The visitors began to grow into the game midway through the half, with Julian Brandt finding the side netting and Havertz clipping an attempt just wide of the post. Home keeper Ron-Robert Zieler then had to produce a stunning reflex save to keep out Kevin Volland's powerful close-range effort on the stroke of half-time.

Leverkusen continued to knock on the door early in the second half - with Brandt and Volland going close - and they took the lead after Volland was tripped by Gonzalo Castro inside the area, with Havertz stepping up to coolly send Zieler the wrong way from the penalty spot. The visitors looked likelier to extend their lead than the hosts did to equalise, with Leon Bailey firing a couple of free-kicks just over the bar. Stuttgart captain Andreas Beck blasted high into the stands as the hosts' frustration boiled over, with Santiago Ascacibar seeing red for a tussle with Havertz late on. The Germany midfielder could have had a second in injury time, but Leverkusen nevertheless held on for a precious win that leaves them just one point off the European places.

Kai Havertz scored his 13th goal of the season as Bayer Leverkusen got the better of VfB Stuttgart. - imago images / Eibner

Match stats

Havertz scored his 13th goal of the Bundesliga season in his 100th competitive appearance for Bayer Leverkusen. He has successfully converted all three of his penalties in the league.

The 19-year-old is the youngest player to reach 13 goals in a Bundesliga season since Stuttgart's Horst Köppel in 1967/68.

Havertz, who has three goals in his last two games, is now his side's top scorer in the Bundesliga, with one more than Volland (12). He opened the scoring for the sixth time this term.

Leverkusen put an end to a run of three defeats in the Bundesliga. They also claimed their first clean sheet in five outings.

Stuttgart have now won just one of their last 14 Bundesliga games, a 5-1 hammering of rock-bottom Hannover in early March.

Castro played for the Leverkusen U19s and reserves, before going on to make 286 Bundesliga appearances in his 10-and-a-half seasons with the club.