Mats Hummels grabbed a crucial late equalizer as Borussia Dortmund claimed a 2-2 draw in the first leg of its Champions League last-16 clash at Shakhtar Donetsk.
The Ukrainians can consider themselves reasonably pleased by their performance, considering they are deep in a winter break and have not played competitively since the group stage ended, but having been so close to victory they are now big underdogs heading into the return fixture.
Darijo Srna put the Ukrainians ahead with a sweetly-struck 31st-minute free kick before the prolific Robert Lewandowski leveled 10 minutes later.
Substitute Douglas Costa restored the home team's advantage in the 68th minute before Hummels handed the Bundesliga outfit a second away goal with a header three minutes from the end.
The match began with a minute's silence to remember the four people who died earlier Wednesday on a Donetsk-bound plane from the port city of Odessa. Two others were injured while the fate of two others is unknown, according to Ukrainian officials. The passengers were travelling to attend the match.
Hummels made an early mistake to hand Henrikh Mkhitaryan the chance to run at the Dortmund defense, with Sebastian Kehl ending the move with by taking the forward down.
Dortmund won a free kick of its own in the fifth minute when Lewandowski was felled by Yaroslav Rakitskiy. The resulting delivery found Jakub Blaszczykowski, whose acrobatic overhead kick failed to hit the target.
Blaszczykowski found space to shoot for a second time soon after but this time dragged wide from an inviting position.
Dortmund was attacking confidently and Lewandowski's headed effort in the 10th minute gave Shakhtar further warning.
A goal for the Germans seemed inevitable as Marco Reus showed some fine touches and Blaszczykowski continued to take up dangerous positions.
Hummels almost provided it when he met Reus' corner in the 17th minute, only for his header to come back off the crossbar.
Reus stung Andrei Pyatov's hands with a rasping effort but Shakhtar gradually started to find their feet, Taison proving a lively outlet.
And with 31 minutes gone, the hosts found themselves in front.
Dortmund did not panic and had their equaliser in the 41st minute.
There was an element of fortune about it, Mario Gotze getting two attempts at his cross after a botched clearance from Dimitro Chygrynskiy and Lewandowski wrong-footing the defence when he fortuitously miscontrolled the ball. Once the space opened up for him, though, he finished clinically.
Taison and Alex Teixeira both had chances before the break, but the score remained 1-1.
Dortmund put together a fine move immediately after the restart but were denied the finishing touch when Reus' shot was blocked.
The game had slowed somewhat from the first period, with fewer clear-cut chance but Dortmund looked more likely to get a second.
But for the second time, Shakhtar defied the run of play to take the lead with 22 minutes left.
Chygrynskiy pumped the ball long and Hummels failed to deal with it to leave Costa, who had surprisingly replaced Taison, to take it down neatly and send a wonderful strike beyond Weidenfeller.
Lewandowski and Gotze combined to fashion a swift response but this time the Polish striker sent his volleyed effort wide.
With three minutes to go, Dortmund deservedly equalized, with Hummels making up for his earlier error with the crucial touch.
Marcel Schmelzer was the provider with an outswinging corner and Hummels left no doubt with a decisive header.
Information from Press Association and The Associated Press was used in this report.