Batshuayi, brought in on loan from Chelsea on Wednesday, scored 35 minutes in, and had an initial second denied to him by VAR for offside just before the break.
He did get his brace after Simon Zoller had equalised, but Jorge Meré then brought Köln level again. It was another former Chelsea man in Schürrle though that settled a thrilling Bundesliga game in the closing minutes.
Batshuayi gets off to the ideal start
Revitalised Köln have picked up 10 points from their last four matches, whilst Dortmund, now without Pierre-Emerick Aubameyang, have only drawn all there of their games since Christmas. The Billy Goats made just one, enforced, change with Sehrou Guirassy replacing the injured Yuya Osako. Batshuayi came straight in for Aubameyang, whilst Peter Stöger made three other changes on his return to his former club, with Mahmoud Dahoud, Julian Weigl and Schürrle also coming in.
Dortmund started the brighter of the two sides, with Batshuayi putting a half chance wide from a Schürrle cross in the opening couple of minutes. Schürrle then struck wide from distance. Shinji Kagawa then hit the bar, as the Köln defence fell static as they feared a penalty after Dahoud went down moments before as Marco Höger came in from behind.
Defensively though the visitors looked as uncertain as ever. Milos Jojic had their first real opportunity kept out by Roman Bürki, whilst a Christian Clemens cross almost presented a chance for Simon Terodde in the middle, but Lukas Piszczek was able to get the ball clear. Otherwise, Köln were doing well to make the Dortmund back line look vulnerable.
Fortunately for them, they had the solution. A spell of passing in the centre circle led to the ball being received by Jeremy Toljan. Passing Frederik Sörensen, he cut the ball back to Batshuayi, who had found some space, and he marked his debut with a goal.
He briefly thought he had a second just before the break too. Christian Pulisic came in from the right, with the ball pass through Kagawa to Toljan. He sent it towards goal with his new Belgian team mate getting a foot on it and scoring. It would be disallowed though, with VAR ruling him to be marginally offside.
Köln come from behind twice to leave game in the balance
Köln were bright after the break, coming closest to equalising when Guirassy struck just over. Dortmund though then had a double chance just after that, with Schürrle finding Batshuayi whose shot was saved by Timo Horn. Pulisic’s follow-up was then blocked by Salih Özcan.
A couple of lapses from Dortmund then allowed the hosts back into the game. Pulisic gave away the ball, with Dominique Heintz charging forward before exchanging passes with Terodde. His shot should have been dealt with by Bürki, but all he managed was to parry to ball straight to Zoller, a half-time substitute, and he finished with ease.
Dortmund responded almost immediately. Heintz this time was partly to blame, losing the ball, and Pulisic took advantage, finding Batshuayi who struck Horn and was not denied this time by any of the officials.
Köln were still playing though and were feeding on Bürki’s nerves. The goalkeeper dropped a Jonas Hector corner but was saved by his defenders. Then when Jhon Córdoba, on the pitch for the first time since mid-November, won another corner, Hector managed to find Meré. The young defender had got free of all the Dortmund men in the box, and headed into the far post leaving a static Bürki with no chance, his first goal for the club.
Schürrle scores winner as Dortmund hang on
The game could have gone either way. Batshuayi had a header saved, whilst a Córdoba cross aimed at Terodde was intercepted by Ömer Toprak.
The key moment then came when a Hector free-kick came to nothing, and Dortmund countered. Jadon Sancho picked out Batshuayi, he found Schürrle, who on a night when he was having one of his better performances of recent time, was able to finish of the move to put Dortmund ahead yet again.
Even then though, Köln refused to accept defeat. After Jojic had a shot blocked, Höger’s follow-up was then kept out by a spectacular diving header, put over the bar, by Sokratis, and they kept asking questions as the game ticked into four minutes of stoppage time, with Dortmund down to ten after Sancho was forced off with an apparent hamstring problem and Batshuayi struggling too.
They survived Köln’s attempts to lay siege to their box though, and Stöger’s men held on for all three points on his former stomping ground, their first win of 2018, taking them up to second before the rest of the weekend’s matches. Köln showed plenty of the fight that had seen them unbeaten for four matches, with the greatest of escapes still very much on.