The Bosnian striker's 52nd-minute goal proved enough after a 2-1 first-leg loss in Ukraine, with 10-man Shakhtar failing to find the late strike they needed after Ivan Ordets was sent off late on.
Cengiz Under's goal in the first leg last month ultimately proved crucial for Roma, but Dzeko was the hero on the night and also proved instrumental in Shakhtar defender Ordets being shown a straight red card with 12 minutes left.
That sending-off led to tensions spilling over, with Shakhtar's Facundo Ferreyra picking up a booking for shoving a ballboy over an advertising board.
Eusebio Di Francesco's side are the second Italian team to advance to the quarter-finals after Juventus, with the draw for the last eight taking place on Friday.
"The standing ovation is not for me but for everyone, we are deservedly in the quarter-finals," said Dzeko of the applause which accompanied him off the pitch.
"We managed to do something Roma hadn't in 10 years, so going forward to play against the best makes us all very proud.
"We are among the eight best sides in Europe."
Roma did not concede a goal at home in the group stage and hammered Chelsea 3-0 at the Stadio Olimpico, so the home fans in the crowd of 47,693 would have been confident their side could get the job done.
The Ukrainians dominated early possession though, and there was a scare for the hosts when Alessandro Florenzi nearly nodded a free-kick into his own net.
Ferreyra then came close after Federico Fazio lost the ball just outside his own box, before Roma struck seven minutes into the second half.
Kevin Strootman sent Dzeko through as Shakhtar tried without success to play the offside trap, and the Bosnian forward prodded a shot through the legs of goalkeeper
Andriy Pyatov and into the net for his fourth goal in the Champions League this season.
Dzeko was then brought down by Ordets who got a straight red card for his troubles, making Shakhtar's task that bit harder.