Roma had gone into the match in buoyant mood under new manager Vincenzo Montella but the game was virtually over when, trailing 1-0, they were reduced to 10 men just before half-time when Philippe Mexes was sent off for a second yellow card.
The Italians were already ruing a missed chance after striker Marco Borriello fluffed a 28th-minute penalty.
The win made Shakhtar the first Ukrainian side to get to the Champions League last eight since Dynamo Kiev who reached the semi-finals in 1999.
"We played much better than they did. Of course, 11 against 10 is easier. They were nervous and made a lot of mistakes and we knew how to control the situation," said Shakhtar coach Mircea Lucescu.
LIVE:Our interactive coverage as it happened
Czech midfielder Tomas Hubschman set Shakhtar, five-times Ukrainian champions, on the way to victory with a neat back flick from a cross by Willian in the 18th minute after the Italians had dominated in early play.
The 22-year-old Brazilian scored himself after the break. Dario Srna's corner was only half cleared and Willian curled the ball into the far corner from the edge of the penalty area.
Striker Eduardo scored the third in the 87th minute to complete the rout by the side owned by Ukraine's richest man, magnate Rinat Akhmetov.
Borriello, the most dangerous man on the pitch for much of the game, had looked full of confidence as he ran up to take the first-half spot-kick but he struck the ball weakly and Shakhtar goalkeeper Andriy Pyatov bundled it round the post.
British referee Howard Webb had no hesitation giving Mexes, Roma's central defender, a second yellow card for a clumsy foul on Luiz Adriano, reducing Roma to 10 men for the second half.
Montella said Roma would learn from the defeat. "We have to develop the ideas and the pace that I saw in the first 30 minutes of the game.
"I tried to keep up the competitive spirit of the team despite the nervous atmosphere after Mexes was sent off. We will analyse our mistakes and move forward."
The coach said he would keep faith with Borriello. "Though he missed a penalty Borriello will stay at Roma, I count on him."
Get the best features, fun and footballing frolics straight to your inbox every week.
Thank you for signing up to Four Four Two. You will receive a verification email shortly.
There was a problem. Please refresh the page and try again.