Goals: 1-0 Augustin (5'), 1-1 Koziello (70'), 1-2 Bittencourt (77')
The hosts burst out of the blocks at kick-off and took the lead almost immediately. Bruma's pace took him past his marker on the left and the winger's cross into the middle was met by Ademola Lookman. His effort was saved but Jean-Kevin Augustin was well placed to tap in the rebound. Leipzig squandered several chances to extend their lead, and Cologne grew into the game as the half wore on, and even had the ball in the net just before the break only for Jorge Mere's header to be ruled out for offside.
Nevertheless, that encouraged the visitors and they were much better in the second period, more aggressive in the tackles and getting forward with more purpose. Their pressure eventually took its toll when Vincent Koziello struck a superb equaliser from the edge of the penalty area, but Cologne wanted more and continued to attack. They got a deserved second goal following excellent work down the right by Marcel Risse to tee up the returning Leonardo Bittencourt at the back post to give the Billy Goats an unlikely and much-needed victory.
- Koziello scored his first Bundesliga goal with his first shot.
- Bittencourt registered his first goal since finding the net against Werder Bremen on 5 May 2017.
- Leipzig have won seven of their eight home games so far this term, losing only to Bayern Munich.
- Timo Werner was last season's leading German goalscorer in the Bundesliga, but sits second on the current list of leading native marksmen behind Hannover's Niclas Füllkrug.
- Forsberg made his 100th appearance in a Leipzig shirt against Napoli.
- Leipzig boss Hasenhüttl made 42 Bundesliga 2 appearances for Cologne as a player (1998-2000).
Watch: Sörensen: "Each game a cup final!"
Leipzig: Gulasci - Bernardo, Upamecano, Orban (c), Klostermann - Sabitzer, Forsberg (Demme 71'), Kampl, Lookman (Poulsen 59') – Augustin (Werner 69'), Bruma
Unused subs: Mvogo, Konate, Ilsanker, Schmitz
Absentees: Halstenberg (knee), Keita (hamstring)
Coach: Ralph Hasenhüttl
Cologne: T. Horn – Sörensen, Mere, Heintz, Hector (c) – Risse, Höger, Koziello (Lehmann 88'), J. Horn (Bittencourt 61') – Terodde, Osako (Özcan 82')
Unused subs: Kessler, Maroh, Jojic, Özcan, Bittencourt, Pizarro
Absentees: Queiros (neck), Clemens (thigh), Nartey (thigh)
Coach: Stefan Ruthenbeck