Danylo Sikan’s first-half header earned Shakhtar Donetsk a memorable Champions League win after beating Barcelona 1-0 in Hamburg.
A frustrating first half saw the only real chance come from Mykola Matviyenko before Sikan gave the hosts the advantage five minutes before half-time with a looping header.
Giorgi Gocholeishvili and Oleksandr Zubkov had chances for the hosts after the break before Barca began to grow into the half following a quadruple substitution, but Shahktar held firm to see out the win.
It is a missed opportunity for Barcelona, where one point would have earned qualification with two games to spare, while victory earned Shakhtar a valuable second win in Group H.
Despite some early pressure from Robert Lewandowski, Shakhtar began to push forward but Barcelona were able to fend off the danger before having a chance of their own when Ilkay Gundogan fired over the bar.
Shakhtar went close when a looping ball found Mykola Matviyenko, who made a great run cutting in from the left, but he fired the ball straight at Marc-Andre ter Stegen.
The hosts continued their positive start with long spells of possession, moving the ball around the pitch, but were unable to break forward and have a shot, while Barca began to grow into the game after the half-hour mark, applying pressure on the Shakhtar defence.
Shakhtar took the lead in the 40th minute, stemming from a superb crossfield ball from Heorhiy Sudakov, who picked out Gocholeishvili on the right flank and his cross met Sikan in the middle where he had plenty of space to head the ball into the top corner.
A quick start saw Ferran Torres blast the ball over the crossbar just minutes into the second half before Shakhtar had a chance at the other end when Gocholeishvili’s shot from a tight angle was blocked by Ter Stegen.
The hosts defended well from an influx of crosses into the box and were on the attack again as Oleksandr Zubkov threaded the ball through to Sikan, but Ter Stegen saved.
In attempt to change the game around Xavi made a quadruple substitution in the 59th minute but Shakhtar continued their hunt for a second goal as Newerton fired wide.
Barcelona began to threaten with more intent around the box as substitute Joao Felix had a shot deflected behind for the visitors and Dmytro Riznyk then made a fine punch to clear the Portuguese’s dangerous cross.
The goalkeeper made another great punch to clear Pedri’s cross and Shahktar thought they had doubled their lead with minutes to go when Newerton’s excellent strike across goal was denied by the offside flag.
The visitors kept pushing in the final minutes, with plenty of balls being fired into the box, but Shakhtar held on to cap an inspired performance.