With the tie finely poised following last week's goalless draw in Lviv, hosts Schalke enjoyed the better of the opening exchanges. Johannes Geis rattled the inside of the post with a trademark free kick and Younes Belhanda shot wide, but Shakhtar carved out the clearer-cut chances from thereon in, and when Joel Matip conceded possession in midfield, the visitors took full advantage, Bundesliga wrote.
Marlos' back-heeled finish left the Royal Blues with it all to do, but their task was not made any easier by a shoulder injury to midfielder Leon Goretzka on the stroke of half time.
Schalke were unlucky not to be level when substitute Franco Di Santo headed over from close range early in the second half, but their hopes of getting back into the tie were effectively ended when Shakhtar's Ferreyra tucked in a second following a mistake by Matip. Although the Royal Blues saw plenty of possession in their search of one of the three goals needed to turn the tie, a breakaway effort from Viktor Kovalenko sealed the popular Ruhr district club's fate.
FC Schalke 04 0-3 FC Shakhtar Donetsk (agg. 3-0)
Goals: 0-1 Marlos (27'), 0-2 Ferreyra (63'), 0-3 Kovalenko (78')
Schalke: Fährmann - Junior Caicara, J. Matip, Neustädter, Kolasinac (Aogo 46') - Geis, Goretzka (Di Santo 45+2') - Schöpf (Sam 58'), Belhanda, Sane - Huntelaar (c)
Donetsk: Pyatov - Srna (c), Kryvtsov, Rakytskyy, Ismaily - Malyshev, Stepanenko - Marlos (Wellington Nem 74'), Kovalenko, Taison (Eduardo 80’') - Ferreyra (Boryachuk 89')