The 2008-2009 UEFA Cup winner made light work of its Swiss opponent in Gelsenkirchen after scoring early through Moraes.
Taison doubled Shakhtar's lead and further goals could and perhaps should have followed long before Alan Patrick's penalty made it three as Basel were dominated in the one-legged last-eight tie.
Shakhtar, which got a late fourth through Dodo, will surely now back itself to at least cause Antonio Conte's Inter problems next week, although this routine victory did little to test its readiness.
Luis Castro's side led after just 100 seconds with the aid of some generous goalkeeping from stand-in Djordje Nikolic.
Marlos delivered a corner from the right and Nikolic, playing due to Jonas Omlin's injury, lunged hopelessly towards the ball, granting Moraes an open goal when he got there first with the header.
Afimico Pululu shot agonisingly across the face of goal at the other end, but Shakhtar remained in control and the second soon followed.
A speedy break from halfway resulted in Marlos controlling on the right corner of the box, taking his time to pick out Taison, whose wayward attempt was deflected high into the net by Fabian Frei.
Nikolic saved smartly from Moraes and was alert again as Marlos rifled an effort goalwards from 20 yards, before Marcos Antonio swept a stunning strike against the crossbar.
Basel belatedly enjoyed a better spell just after the hour mark, but a VAR review did not provide Pululu with a penalty and then Arthur Cabral squandered a big opportunity, lifting his finish wide of goal with Andriy Pyatov stranded.
There would be no fightback as Taison went over in the area and a spot-kick did this time follow, allowing Alan Patrick to calmly beat a scrambling Nikolic.
There was still time for Dodo to thump in number four following Mateus Tete's well-timed pass on the counter, with Ricky van Wolfswinkel's stoppage-time tap-in from Kemal Ademi's centre the scantest of consolations.