Goals: 0-1 Forsberg (16'), 0-2 Orban (54'), 1-2 Sane (71'), 1-3 Poulsen (76'), 2-3 Füllkrug (78')
Hannover's Felix Klaus drew the first save of note from Peter Gulasci, but the opening goal went the way of Leipzig. Jean-Kevin Augustin released Timo Werner, who could have gone it alone, but instead played the ball across the six-yard box for Emil Forsberg to sweep home. Another blistering counter almost produced Leipzig's second as Werner took out three Hannover defenders, before blazing wide.
Hannover had barely had a sniff, and might have fallen further behind had Werner not snatched at his close-range effort early in the second half. Philipp Tschauner beat away another Werner attempt, but was powerless to prevent Willi Orban heading in Naby Keita's precision-perfect cross following a quickly worked short corner from Forsberg.
Hannover enjoyed their best spell in the aftermath to the goal as Salif Sane halved the deficit with 19 minutes of normal time remaining, but a rapid-fire response - Werner teeing up substitute Yussuf Poulsen - restored Leipzig's two-goal advantage. Substitute Niclas Füllkrug struck twice in the space of three barnstorming minutes, only to see his second ruled out by the video assistant. Marvin Bakalorz struck the woodwork late on as Hannover succumbed to a fifth successive defeat.
Watch: Leipzig are the Bundesliga's counter-attacking kings
- Forsberg scored his first goal since sinking a penalty against Bayer Leverkusen on 18 November 2017.
- Leipzig captain Orban made his 50th Bundesliga appearance. Five of his six Bundesliga goals to date have been headers.
- Hannover are the only Bundesliga team to have lost the last five matches - their worst run in five years.
- Four of Füllkrug's 11 Bundesliga goals this season have come from the bench.
- Sane has scored a career-best three Bundesliga goals this season.
- Leipzig are unbeaten in their last six competitive games.
Hannover: Tschauner – Sorg (c), Sane, Anton (Elez 18') – Korb (Bebou 46'), Fossum, Bakalorz, Schwegler, Ostrzolek – Klaus, Jonathas (Füllkrug 63')
Unused subs: Esser, Albornoz, Fossum, Sarenren Bazee
Absentees: Felipe (muscular), Hübner (illness), Maier (foot), Prib (knee ligaments), Harnik (illness)
Coach: Andre Breitenreiter
Leipzig: Gulacsi – Laimer, Orban (c), Konate, Bernardo – Demme, Keita – Forsberg (Upamecano 80'), Bruma (Sabitzer 60') – Augustin (Poulsen 68'), Werner
Unused subs: Mvogo, Klostermann, Kampl, Lookman
Absentees: Halstenberg (knee ligaments), Ilsanker (knee)
Coach: Ralph Hasenhüttl
Watch: Forsberg on a "Thriller" of a victory!