Steffen Baumgart opted for two alterations from the side that started the one-all draw with VfL Bochum before the international break. Nikola Soldo and Jan Thielmann were replaced by Luca Kilian and Linton Maina.
Edin Terzic made three changes to the team that began the derby win against FC Schalke 04. Niklas Süle, Raphael Guerreiro and Karim Adeyemi came into the team for Mats Hummels, Marius Wolf and Marco Reus.
FC began brightly and were keen to get at Dortmund in the early stages of the game. Dejan Ljubicic was teed up twice in a matter of seconds on the edge of the area, only to see both efforts blocked. Dortmund were struggling to get going against an FC side keen to press. Steffen Tigges and Linton Maina both had good chances to shoot but failed to pull the trigger.
A flurry of yellow cards followed in the middle part of the half, with four in eight minutes and five in total during the first 45 minutes. Florian Kainz was a whisker away from opening the scoring, screaming a low drive just past the base of the post. The visitors would, however, take the lead after half an hour. A fantastic passing move resulted in Julian Brandt dancing through the middle and poking past the oncoming Marvin Schwäbe to open the scoring.
Schwäbe was then required to make three further superb saves. Twice he denied Adeyemi, palming his swerving shot wide before a stunning stop turned his vicious volley over the bar. Donyell Malen went one-on-one moments later and was thwarted by the big, brave FC shot-stopper. Both sides pressed in the final knockings for a further goal but Dortmund remained ahead at the break.
FC came into the second-half in similar fashion as to the beginning of the match. This time, it paid off. Linton Maina burst forward after a clever Jonas Hector pass into the left channel. The winger darted forward towards the by-line and managed to cut back for the oncoming Florian Kainz to sweep home. The scores were level, the crowd louder than ever.
That noise was cranked up another notch three minutes later. Kainz was involved again, this time as the provider. His corner from the right was arched towards the near post and Steffen Tigges rose highest to power his header home past the helpless Alexander Meyer. His first Bundesliga goal for FC against his former club. In 11 second-half minutes, the game had been turned on its head.
FC had the chance to put the game beyond doubt not long after as Florian Dietz latched onto a long ball. His effort smacked the inside of the post and cannoned away from goal. Dejan Ljubicic would give the hosts the necessary breathing space, though. Denis Huseinbasic pushed his way to the edge of the Dortmund box and teed up Ljubicic, who produced a stunning, curling effort that nestled into the far corner.
That wouldn’t be the end of the entertainment, though. Thorgan Hazard missed a glorious chance to bring Dortmund back within a goal before Tom Rothe’s cross looped up and over the helpless Schwäbe and into the back of the net. BVB couldn’t find a meaningful way forward late on, and FC made sure the three points would remain in Köln.
FC are next in action on Thursday evening as they return to UEFA Europa Conference League action. Steffen Baumgart’s side take on Paritzan Belgrade at the RheinEnergieSTADION with kick-off at 21:00 CEST.
1. FC Köln (4-1-3-2): Schwäbe – Schmitz (Martel 83’), Kilian, Hübers, Hector – Skhiri – Ljubicic, Duda (Adamyan 61’), Kainz (Huseinbasic 70’) – Maina (Schindler 70’), Tigges (Dietz 61’).
Borussia Dortmund (4-3-3): Meyer – Meunier, Süle, Schlotterbeck, Guerreiro (Rothe 77’) – Brandt, Özcan (Moukoko 70’), Bellingham – Adeyemi (Hazard 61‘), Modeste, Malen (Can 77’).
Goals: 0:1, Brandt 31’. 1:1, Kainz 53’. 2:1, Tigges 56‘. 3:1, Ljubicic 71’. 3:2, Rothe 78‘.
Referee: Harm Osmers (Hannover).
Booked: Hübers (21’), Adeyemi (23’), Duda (25’), Guerreiro (29’), Süle (36’), Schindler (79’), Huseinbasic (90’).
Attendance: 50,000 (sold-out).