Thomas Tuchel's men couldn't find a way past Schalke 04 despite their best efforts during a frantic Revierderby. With his team in need of a rest, he opted for four changes. Lukasz Piszczek, Felix Passlack, Shinji Kagawa and Pierre-Emerick Aubameyang were replaced by Marc Bartra, Raphael Guerreiro, Gonzalo Castro and Ramos.
Similarly, Jorge Jesus' side drew a rather blank at CD Nacional at the weekend. He made two alterations, as Lazar Markovic and Bas Dost dropped out for Paulo Oliveira and Luc Castaignos.
Pulisic the protagonist in a half full of chances
There was a controversial start to proceedings at the Westfalenstadion, as Christian Pulisic had his legs taken away by Sebastian Coates. Danny Makkelie had a different view of things, however, and opted against awarding the USA international a penalty. The home fans were, perhaps understandably annoyed by the decision.
The opening stages certainly weren't for those who appreciated the physical side of the game, as Sporting had a penalty appeal of their own turned down when Castaignos appeared to be hauled down by Marc Bartra. This one, however, seemed more of an six-to-one, half-a-dozen to the other type of call.
However, undeterred, the hosts moved forward with a cutting edge and went ahead with a lovely team move. Good hold up play by Pulisic saw the ball eventually shifted wide to Matthias Ginter. His cross was perfect for Ramos to rise high and loop a superb header over the beaten Rui Patricio; the goalkeeper could only claw in vain at his effort.
After taking the lead in the 12th minute, Dortmund were dominant and Sporting struggled to force a way forward. Pulisic nearly fed Ramos again, yet his pass proved just too strong for the Colombian to reach. In response, Jorge Jesus switched to a back three in order to regain some footing in the midfield battle.
That did stem the flow and change seemed to leave BVB guessing long enough for the Portuguese side to forge two great opportunities to level. Both fell to Gelson Martins but he was unable to force a shot from either, as Roman Bürki closed down the first attempt before Bartra made a brilliantly brave block at point-blank range.
The final openings of an action-packed half fell for Tuchel's men, and were twice missed by Pulisic. The youngster rattled the bar after some oh-so slick build-up play involving himself and Mario Götze. The final kick off the half saw the teenage talent hit the side-netting after excellent play by Raphael Guerreiro.
BVB hang on for last 16 berth
Both teams made changes at the break as Dost replaced Castaignos and André Schürrle was brought on for Ousmane Dembélé. It was Sporting who began the second period the better as Gelson Martins finally managed to test Bürki. The Swiss stopper spilled the shot, yet Ginter put enough pressure on Dost to force him to shoot wide.
Unlike the opening period, it was far from an easy watch. A long range effort from Bruno Cesar almost caught BVB out cold, as did the returning Adrien Silva's screaming drive; neither were on target, though. The second half was proving tough for Dortmund to break out of their own half, and their fans were on edge as a result.
Tuchel responded with a double change that saw Piszczek and Sebastian Rode replace Castro and Götze. The best chances of the half came in the latter stages, which saw Schürrle's free-kick well saved by Patricio but Bryan Ruiz wasted a better opening still when he headed over from just six yards out.
The home faithful were able to breathe a sigh of relief when the final whistle went, and the fact that Real Madrid had drawn 3-3 with Legia Warsaw only made things better. It's not good news for Sporting, though, who'll need to earn a positive result to ensure their passage into the UEFA Europa League at least.