The German side came into the clash having claimed a hard-fought draw in Ukraine three weeks ago and Felipe Santana put it firmly on course for the next round with a thumping header just after the half hour.
Mario Gotze touched home Robert Lewandowski's cross shortly afterwards, while Jakub Blaszczykowski all but made sure of Dortmund's passage just before the hour mark.
The emphatic win underlined Manchester United boss Sir Alex Ferguson's comments that the Bundesliga team is one of the favourites for glory in this year's competition.
Dortmund started very much on the front foot and nearly took the lead with its first real sight at goal. Lewandowski latched on to Gotze's pass to go clean through but the Pole was thwarted by Andrei Pyatov's legs.
Sven Bender's drive from distance sailed harmlessly over before Shakhtar started to grow into the game and reminded Dortmund of its attacking prowess, Alex Teixeira's teasing free-kick into the area producing a hesitant clearance from Marcel Schmelzer.
While fellow Brazilian Fernandinho poked wide from the edge of the area, the visitor fell behind in the 31st minute.
Santana leapt above his marker to head home Marco Reus's corner at the near post, with Shakhtar defender Razvan Rat failing to clear despite being positioned on the line.
Jurgen Klopp's men continued to pour forward and were duly rewarded with their second of the evening six minutes later.
Lewandowski burst down the right and his low cross was tickled goalwards by Gotze, with the ball taking a deflection off a Shakhtar defender before nestling into the net.
Dortmund was clearly in the ascendancy but any thoughts the tie was done and dusted were nearly silenced when goalkeeper Roman Weidenfeller had to fingertip away Fernandinho's cross-shot shortly before half-time.
And Shakhtar came out all guns blazing after the interval, with Luiz Adriano firing across Weidenfeller and just wide of the target.
Shakhtar was leaving itself open at the other end, although the 1996-1997 winner of this competition was grateful for a sloppy piece of keeping from Andrei Pyatov to go further ahead.
Ilkay Gundogan's strike from the edge of the area was straight at Pyatov but he spilled the ball, allowing Blaszczykowski to steal in, skip past the keeper and tap in from close range in the 59th minute.
Shakhtar's keeper would redeem himself slightly with an excellent full-length diving save to tip away a curling effort from substitute Kevin Grosskreutz, who had replaced Blaszczykowski just minutes earlier.
Not content to rest on its lead, Dortmund continued to push forward, with Reus bursting through on goal but he found himself off-balance and his strike missed the target.
Mircea Lucescu's side had an opportunity to end a forgettable evening on a high, with a deflected shot falling into the path of Adriano, who was denied by the legs of the onrushing Weidenfeller.