Shakhtar Donetsk cruised into the Europa League semi-finals as their quartet of dazzling Brazilians helped them to a thumping 4-1 win over Basel in Gelsenkirchen.
The Ukrainian outfit, who won the competition in 2009, took an early lead as Junior Moraes headed home Marlos' corner (2) and Taison doubled their advantage after 22 minutes when his shot deflected in off Fabian Frei.
- Europa League state of play | Fixtures
- How the teams lined up | Match stats
- Get Sky Sports - All channels £23 a month
Basel were second best throughout, and they fell further behind when Alan Patrick converted from the penalty spot (75) and Dodo increased the lead with a well-taken finish with two minutes remaining.
There was still time for a heart-warming end for Ricky van Wolfswinkel, who notched his third goal since returning to the game following a life-threatening brain condition earlier this season (90+2).
Shakhtar will play Inter Milan in their first Europa League semi-final since 2016 on Monday with Manchester United taking on Sevilla in the other side of the draw on Sunday.
Shakhtar Donetsk: Pyatov (6), Dodo (8), Kryvtsov (6), Bondar (6), Matviyenko (6), Marcos Antonio (8), Stepanenko (6), Marlos (8), Alan Patrick (8), Taison (9), Moraes (8).
Subs: Tete (7), Solomon (6), Kovalenko (n/a), Maycon (n/a), Fernando (n/a).
Basel: Nikolic (7), Widmer (7), Alderete (5), Van Der Werff (5), Petretta (5), Xhaka (5), Campo (6), Frei (5), Stocker (5), Arthur Cabral (6), Pululu (6).
Subs: van Wolfswinkel (7), Ramires (5), Marchand (5), Ademi (5).
Man of the match: Taison.
How Shakhtar cut apart sorry Swiss
Shakhtar and Basel had met on three previous occasions in all competitions, with the Ukrainian outfit avoiding defeat in each clash, most recently running out 5-0 winners in the 2008/09 Champions League group stages. Their head coach Luis Castro said he expected a "huge battle" but this was a very one-sided affair.
Shakhtar retained the Ukrainian Premier League title by a whopping 23 points over second-placed Dynamo Kiev - and they asserted their dominance right from the off.
Basel were without their influential defender Eray Comert at the heart of the defence, and his replacement Jasper van der Werff had a torrid evening, losing Moraes for the opener inside a minute and 38 seconds as Marlos' corner was headed home by the veteran striker.
Marcel Koller's men briefly flickered into life as Afimico Pululu fizzed a low shot wide of Andriy Pyatov's goal, but seldom did Basel threaten in the opening 45 minutes.
The roof inside the Veltins-Arena was open but the sky was falling in for Koller's side when after 22 minutes, more sloppy defending from the youngster Van der Werff allowed Marlos to set up Taison, and his first-time finish clipped off Frei on its way into the net.
Basel head coach Marcel Koller made just one change to the side that saw off Frankfurt, as Van Der Werff replaced Eray Comert at the heart of the defence. For the 21-year-old, this was a huge opportunity to test his mettle at the elite level.
Mykola Matviyenko was fit to start and took the left-back role as Luis Castro gave a European debut to centre-back Bondar, who was part of last year's FIFA U20 World Cup-winning side.
Basel, who progressed from their only previous Europa League meeting with a Ukrainian club - beating FC Dnipro 3-1 on aggregate in the 2012/13 last 32 - struggled to match the creativity and sharp passing of their opponents as Marcos Antonio struck the underside of the bar after Moraes had already forced the overworked Djordje Nikolic into a smart save.
The interval stiffened Basel's resolve, and they had the chance to get back into the contest after 66 minutes when Arthur Cabral reached a long ball ahead of Serhiy Kryvtsov but with Pyatov off his line, he could only chip his effort wide.
Basel went into the contest having played 16 games in eight-and-a-half weeks compared to 11 from the Ukrainians since the restart, and it was visible which side was fresher in the closing stages.
Substitute Yannick Marchand brought down Taison inside the box with 15 minutes remaining, allowing Alan Patrick to slot home his third goal in this season's competition, and with Basel defeated Dodo compounded their misery with a fine finish beyond Nikolic from Tete's run and pass.
This was Basel's first major European quarter-final tie since the 2013/14 Europa League when they were eliminated by Valencia - and they found a late consolation when Samuele Campo's low cross was converted from close range by Van Wolfswinkel, but they were soundly beaten.
- Shakhtar Donetsk remain unbeaten against Basel in European competition, winning their last three such encounters by an aggregate score of 11-2 (D1).
- Basel conceded as many goals in this game (four) as they had in their previous 10 Europa League games combined.
- Shakhtar Donetsk striker Junior Moraes scored the opening goal in this game; he has now scored in three consecutive Europa League games for the first time (four goals in total).
- Marlos has assisted 10 goals for Shakhtar Donetsk in the Europa League, twice as many as any other player for the club in the competition.
- Junior Moraes' opener for Shakhtar was the first goal Basel have conceded in 470 minutes in the Europa League since KC Krasnodar's Ari netted against them in November 2019.
Man of the match - Taison
While there was a big deflection on his goal, Taison was instrumental in helping his side find a second wind following the restart, winning the penalty from which Alan Patrick put the contest to bed.
Taison is now Shakhtar Donetsk's joint-top scorer in the Europa League with seven goals, alongside Luiz Adriano, and he will be among the danger men that Inter must be wary of during Monday's semi-final at the Merkur Spiel-Arena in Dusseldorf.
Shakhtar Donetsk advance to face Inter Milan in the last four on Monday (kick-off at 8pm).
The remaining rounds of the Europa League are all being played in Germany due to the coronavirus, with the semi-finals reduced to a single leg.
Sevilla vs Man Utd (August 16, RheinEnergieStadion)
Inter Milan vs Shakhtar Donetsk (August 17, Merkur Spiel-Arena)
Friday August 21 (RheinEnergieStadion)