A late Miralem Pjanic penalty has given Roma all three points in their Champions League clash against Bayer Leverkusen, after the home side had relinquished a two-goal lead.
Roma took the lead immediately in the tie as Mohamed Salah controlled Edin Dzeko's through-ball before firing past Leverkusen keeper Bernd Leno in the second minute.
The following 25 minutes saw a Leno clearance hit Edin Dzeko before bouncing narrowly wide, and a Javier Hernandez header that just missed the target.
Dzeko doubled Roma's lead in the 29th minute as the Leverkusen defence was split once more, this time by a Radja Nainggolan pass which found the Bosnian striker who put a measured effort beyond Leno.
Dzeko had the opportunity to hand Roma a three-goal advantage straight after his strike but the forward spurned the chance to notch his brace by shooting wide from close range after a Salah cross.
The restart saw an immediate response from Bayer, as Admir Mehmedi fired past on-loan Arsenal stopper Wojciech Szczesny after being found in space outside the area by Kevin Kampl with one minute of the half gone.
Karim Bellarabi, who replaced Stefan Kiessling at the break, made an instant impact as his through-ball was slid home by Javier Hernandez in the 51st minute, as the Mexican took his Champions League tally to four strikes with the equaliser, just one behind top scorer Cristiano Ronaldo.
A scramble from a Roma corner resulted in a chance for Salah at Leverkusen's back post, but the Egyptian was shoved to the turf by Omer Toprak before he could get a strike away.
Toprak saw red for the incident, conceding a penalty for the foul which was dispatched by Miralem Pjanic to put the Italian side back in front in the 80th minute.
Roma held on to their lead to move into second place in Group E, leapfrogging Roger Schmidt's side who fall to third.