Turkish youngster Cengiz Under marked his Champions League debut for Roma with a well-taken 41st-minute opener after latching onto Edin Dzeko’s clever through ball.
Shakhtar were much-improved after the break, though, and Facundo Ferreyra ran clear to slot under onrushing goalkeeper Alisson Becker.
The hosts completed the turnaround in style with 19 minutes to play, as Fred curled a free-kick in off the crossbar.
But an extraordinary goalline block from Roma substitute Bruno Peres to deny Ferreyra in the final minute of injury-time kept the tie finely balanced ahead of the second leg at the Stadio Olimpico on March 13.
Download our app and read this and other great stories on the move. Available for Android and iOS.