Fred's superb free-kick completed the turnaround as Shakhtar wrested the upper hand in this last-16 tie.
Article top media content
Facundo Ferreyra and Fred were both on target as Shakhtar mounted an impressive comeback in Kharkiv.
The Cengiz Ünder fairy tale looked set to continue after the 20-year-old marked his UEFA Champions League debut with the opener for ascendant Roma shortly before the break, his fifth strike in four outings.
The Ukrainian hosts, though, had not read the script. Seven minutes into the second period the previously anonymous Ferreyra levelled, and midway through the half Fred sent a superb, left-footed free-kick into the top corner via the bar.
But for several incredible stops from Allison Becker, it could have been worse for Roma.
Key player: Fred (Shakhtar)
When questioned about Shakhtar's transfer activity this winter, Paulo Fonseca said the club's biggest achievement was keeping hold of the likes of Fred. You can see why. A first UEFA Champions League goal on his 23rd appearance, and it was worth the wait. He rallied his troops to recover from being a goal behind, and now Shakhtar head to Rome with optimism.
Reporter talking points
Evgeni Polyakov, Shakhtar: As Eusebio Di Francesco predicted, there were periods of possession for both sides and Shakhtar squeezed the most out of theirs. Only heroics from the keepers limited us to three goals. It'll be difficult for the Pitmen in Italy but they at least have an advantage to defend.
Ben Gladwell, Roma: You cannot help but feel Roma have thrown away a huge opportunity. Credit goes to Shakhtar, but could the Giallorossi have pressed home their advantage? Alessandro Florenzi was not fully fit and it was his mistake that let Shakhtar back into the game. Nobody could have stopped Fred's winner, though.
- Cengiz Ünder scored on his UEFA Champions League debut, joining a select group that includes Zlatan Ibrahimović, Wayne Rooney, Karim Benzema, Thomas Müller and Marco Asensio
- At 20 years 222 days, Cengiz Ünder is the youngest Turkish player to register in the competition, the 51st in all
- Roma are 26 away games without a clean sheet in the UEFA Champions League, dating back to 2007
- The Pitmen have won four out of four at their European base of Kharkhiv this season
- The only previous time Shakhtar won the first leg of a last-16 tie, against Roma in 2011, they advanced to the quarter-finals for the only time
- None of Shakhtar's last 15 UEFA Champions League matches, qualifying included, has ended in a draw