Match ends, 1. FC Heidenheim 1846 1, Bayer 04 Leverkusen 2.
Bayer Leverkusen moved eight points clear of Bayern Munich at the top of the Bundesliga after a narrow victory at mid-table Heidenheim.
Jeremie Frimpong put Xabi Alonso's unbeaten side in front in first-half injury time with a deflected effort.
Amine Adli added a second after the interval, rounding goalkeeper Kevin Muller before slotting home.
Tim Kleindienst pulled one back for Heidenheim with four minutes left but Leverkusen managed to hold on.
Second-placed Bayern can reduce the deficit on their Bundesliga title rivals with victory at Bochum on Sunday.
Leverkusen's victory means they have now gone a record-equalling 32 games without losing.
Bayern went undefeated in 32 consecutive competitive matches under Hansi Flick from 2019 to 2020.
Leverkusen are chasing their first Bundesliga title having finished as runners-up in 1996-97, 1998-99, 1999-2000, 2001-02 and 2010-11.
Line-ups
Heidenheim
Formation 4-2-3-1
- 1Müller
- 23Traoré
- 6Mainka
- 5GimberBooked at 32minsSubstituted forPieringerat 82'minutes
- 19FöhrenbachBooked at 26mins
- 3SchöppnerSubstituted forSessaat 63'minutes
- 33Maloney
- 8DinkçiSubstituted forBuschat 76'minutes
- 21BeckSubstituted forDovedanat 45'minutes
- 37BesteSubstituted forPickat 76'minutes
- 10Kleindienst
Substitutes
- 2Busch
- 4Siersleben
- 9Schimmer
- 16Sessa
- 17Pick
- 18Pieringer
- 20Dovedan
- 22Eicher
- 30Theuerkauf
B Leverkusen
Formation 3-4-1-2
- 1Hrádecky
- 2Stanisic
- 4Tah
- 3Hincapié
- 30FrimpongSubstituted forTellaat 88'minutes
- 34Xhaka
- 8AndrichBooked at 90mins
- 20Grimaldo
- 10WirtzSubstituted forHofmannat 88'minutes
- 14SchickSubstituted forIglesiasat 74'minutes
- 21AdliSubstituted forTapsobaat 88'minutes
Substitutes
- 6Kossounou
- 7Hofmann
- 9Iglesias
- 12Tapsoba
- 17Kovár
- 18Mbamba
- 19Tella
- 23Hlozek
- 32Puerta
- Referee:
- Harm Osmers
- Attendance:
- 15,000
Match Stats
- Possession
- Home38%
- Away62%
- Shots
- Home6
- Away18
- Shots on Target
- Home3
- Away3
- Corners
- Home4
- Away5
- Fouls
- Home15
- Away5
Live Text
Post update
Full Time
Second Half ends, 1. FC Heidenheim 1846 1, Bayer 04 Leverkusen 2.
Post update
Jonas Hofmann (Bayer 04 Leverkusen) wins a free kick in the defensive half.
Post update
Foul by Jonas Föhrenbach (1. FC Heidenheim 1846).
Post update
Nathan Tella (Bayer 04 Leverkusen) wins a free kick on the right wing.
Post update
Foul by Jonas Föhrenbach (1. FC Heidenheim 1846).
Booking
Robert Andrich (Bayer 04 Leverkusen) is shown the yellow card.
Post update
Foul by Piero Hincapié (Bayer 04 Leverkusen).
Post update
Omar Traoré (1. FC Heidenheim 1846) wins a free kick on the right wing.
Post update
Foul by Jonas Hofmann (Bayer 04 Leverkusen).
Post update
Omar Traoré (1. FC Heidenheim 1846) wins a free kick in the defensive half.
Substitution
Substitution, Bayer 04 Leverkusen. Edmond Tapsoba replaces Amine Adli.
Substitution
Substitution, Bayer 04 Leverkusen. Jonas Hofmann replaces Florian Wirtz.
Substitution
Substitution, Bayer 04 Leverkusen. Nathan Tella replaces Jeremie Frimpong.
Goal!
Goal! 1. FC Heidenheim 1846 1, Bayer 04 Leverkusen 2. Tim Kleindienst (1. FC Heidenheim 1846) header from very close range to the centre of the goal. Assisted by Nikola Dovedan with a headed pass following a set piece situation.
Post update
Foul by Álex Grimaldo (Bayer 04 Leverkusen).
Post update
Nikola Dovedan (1. FC Heidenheim 1846) wins a free kick on the right wing.
Post update
Attempt blocked. Florian Pick (1. FC Heidenheim 1846) right footed shot from outside the box is blocked. Assisted by Nikola Dovedan.
Substitution
Substitution, 1. FC Heidenheim 1846. Marvin Pieringer replaces Benedikt Gimber.
Goal!
Goal! 1. FC Heidenheim 1846 0, Bayer 04 Leverkusen 2. Amine Adli (Bayer 04 Leverkusen) left footed shot from the centre of the box to the bottom left corner. Assisted by Florian Wirtz with a through ball.