The Ukrainians faced an unenviable task of trying to overturn a four-goal deficit from the first leg, but they started well as Willian and Costa combined for the latter to test Victor Valdes and the Barcelona goalkeeper was then forced to make a smart stop to deny Jadson.
Jadson should have done better than shoot straight at Valdes with another chance, and Barca then took control of proceedings as Messi fired into the arms of Andriy Pyatov before Yaroslav Rakitskiy cleared an effort from Adriano off the line.
Messi then chipped a harmless effort straight at Pyatov but the Argentina star would not waste his next opportunity, latching onto a Dani Alves’ pass before clinically slotting the ball into the back of the net.
He then attempted to play provider by skipping past two markers before teeing up Ibrahim Afellay, but the Dutchman’s smart curling effort was kept out by a superb diving save from Pyatov and Alves could only blast the rebound wide.
Shakhtar tried to give their fans something to cheer about but Valdes made a stunning save to deny Henrik Mkhitaryan, and Barca now await the winners of the Real Madrid-Tottenham tie, with their fierce rivals from the Bernabeu already four goals to the good from the first leg.