Michy Batshuayi made an impact on his first match since leaving Chelsea, and Andre Schurrle scored the game-winner late against the struggling Bundesliga side.
Chelsea loanee Michy Batshuayi got his Borussia Dortmund career off to a goalscoring start on Friday, helping the Black and Yellows secure a hard-fought 3-2 victory against FC Köln with a brace on his debut.
The Belgian striker also had a goal ruled out by the VAR as Dortmund secured their first three points of the Rückrunde, with their first league win at the RheinEnergieStadion for almost six years putting an end to Köln's recent run of form.
Batshuayi and André Schürrle had the first sights of goal but saw their efforts fly harmlessly wide of Timo Horn's near post.
The first real chance of the game fell to the right foot of former Dortmund midfielder Miloš Jojić. After Sehrou Guirassy cleverly peeled away from the Dortmund backline and crossed the ball into the box, only the left foot of Roman Bürki stopped the hosts from scoring.
Shinji Kagawa then looked to respond for the visitors and came close with a left-footed effort that clipped the top of the bar.
Batshuayi had to wait until the 35th minute to get his first clear chance of the game and the 24-year-old striker made no mistake from close range.
After Jeremy Toljan breezed past Frederik Sørensen with ease, Batshuayi showed great technique with his weaker foot to convert the left back's driven cross past a static Horn.
Dortmund then appeared to find some breathing space with half-time just around the corner. Batshuayi and Toljan linked up once again in the FC Köln penalty area and despite the ball hitting the back of the net via Dortmund's new striker, the goal was ruled out for offside.
Köln's Guirassy came close to leveling the scoreline with an effort at the start of the second half, while Batshuayi and Christian Pulisic looked to continue threatening the hosts' goal for Dortmund.
Peter Stöger's side then cheaply gave up their lead before the hour mark. Roman Bürki poorly tried to clear a long-range effort from Dominique Heintz and Simon Zoller, a second-half substitute for Köln, reacted quickly to head the ball into the back of the net.
Batshuayi restored Dortmund's lead just two minutes later after being sent through by Pulisic, sending a clever finish through the legs of Timo Horn.
However, a glancing Jorge Meré header brought the Billy Goats level once again to round off a frantic 10 minutes at the RheinEnergieStadion.
Salih Özcan and Marco Höger were then made to rue their wasted opportunities in the latter stages of the game when André Schürrle fired Dortmund back into the lead with an outstanding strike from the edge of the box.
Peter Stöger's side were able to hold out amidst constant pressure in added time to register their first win of 2018, propelling Dortmund back into the top four in the Bundesliga table.