Edin Dzeko's 52nd-minute goal sent AS Roma into the Champions League quarter-finals.
It was a nervous ending for the Italian side as they hung on to a slender lead despite.
Roma advance on the away goal rule following their 2-2 aggregate draw.
Shakhtar Donetsk defender Ivan Ordets was shown a straight red card for his challenge on Dzeko who was through on goal with only the goalkeeper to beat.
It was a much-improved second-half from the hosts after they were pinned in their own half throughout the first 45 minutes.
Dzeko puts Roma ahead
Minutes into the second-half Dzeko coolly converted to give the Italians the advantage.
His 52nd-minute goal levelled the tie but gave Roma the advantage thanks to their vital away goal in the first-leg.
The chance came through a delightful through ball from Kevin Strootman which was not dealt with by the Shakhtar defence, allowing the Bosnian forward to slot it beyond the advancing Andriy Pyatov.
The experienced striker calmly poked the ball between the legs of the onrushing goalkeeper to give his side a crucial away goal advantage.
It was the hosts' first clear opportunity on goal all night with the visitors running the majority of the first-half.
Ordets ends Shakhtar's chance
Ivan Ordets was shown a straight red card for his last-man foul on Dzeko in the 79th-minute.
Shakhtar's very slim chance of scoring a tie-winning goal looked even slimmer following the Ukrainian's sending off.
Dzeko looked through on goal with only Pyatov to beat, however, Ordets did not want to take the chance of Dzeko converting and so brought him down.
With only 10 minutes to go, Shakhtar still required a goal to win the tie but in going forward left themselves extremely open at the back with one less defender.
Shakhtar quick out of the blocks
Despite AS Roma captain Daniele De Rossi promising of a quick start to the game by his side, it was, in fact, the visitors who made the better of the early chances.
Shakhtar Donetsk quickly established themselves in the game with their midfield completely running the proceedings.
With Fred pulling the strings in the middle of the pitch, it allowed the visitors to press forward in search of an opening goal.
Although it was Roma that entered the game in need of a goal to even the tie, it was Shakhtar who were looking the most likely to open the proceedings.
The hosts found themselves frustrated with the visitors dictating the tempo of the game through their pinpoint passing.
A half of very little opportunities for either side but it was certainly Shakhtar running the game, nullifying Roma's attacking threat to speculative efforts from range.
Much improved from Roma
For a team in search of a goal, Roma's first-half performance was far from impressive.
However, I Giallorossi came out much stronger in the second 45. It did not take them long to open the scoring but on the whole, they were able to disrupt Shakhtar from running the game.
Roma found themselves much more comfortable whilst in possession of the ball in the second-half with Radja Nainggolan and Strootman running the show in the centre.
On the few occasions which the visitors advanced, Roma stood strong at the back allowing goalkeeper Alisson Becker a fairly comfortable evening.
The main difference in Roma was the fight and desire they showed in the second period.
Whenever the visitors received the ball Roma closed them down quickly, not allowing them a second on the ball.