Nicolò Zaniolo came off the bench and changed the game, winning two penalties converted by Lorenzo Pellegrini and scoring the third, but Ludogorets can feel hard done by for their disallowed equaliser.
The Giallorossi knew only a win would keep them in the Europa League as runners-up to Real Betis, otherwise they’d drop down into the Conference League play-offs. Nicolò Zaniolo saw his ban reduced on appeal, but was benched anyway ahead of the Derby della Capitale, with Leonardo Spinazzola, Paulo Dybala, Georginio Wijnaldum, Ebrima Darboe and suspended Gianluca Mancini out.
Lorenzo Pellegrini drilled inches wide, but Thiago somehow failed to connect with the Bernard Tekpetey ball across the six-yard box in what would’ve been a tap-in.
Tekpetey threatened again with his finish deflected over by Chris Smalling and another fired just wide, while Pellegrini had a couple of efforts deflected past the post for corners.
Ludogorets were allowed several shots from the edge of the area, including one from Cauly that thumped the upright, so it was not entirely surprising when they took the lead as Rick ran centrally from his own half and smashed a low drive into the near bottom corner from outside the box.
Jose Mourinho made a triple substitution at the break, introducing Zaniolo, Bryan Cristante and Cristian Volpato. They also came out with a totally different attitude, immediately forcing three saves in a minute with a Zaniolo effort charged down, the Stephan El Shaarawy follow-up parried by the goalkeeper, then El Shaarawy again testing Sergio Padt at the near post.
Tammy Abraham chested a ball down for Zaniolo, who was clattered from behind by Cicinho for a clear penalty, converted by Pellegrini.
Zaniolo wreaked havoc in the Bulgarian defence and was barged in the back by Verdon after he sprung the offside trap to run into the box, providing another penalty. Pellegrini changed corner and still sent the goalkeeper the wrong way.
Zaniolo forced another save at the near post, but Rui Patricio used his legs to parry Matias Tissera’s daisy-cutter on the counter-attack.
Ludogorets did get an equaliser when Tissera’s effort bounced off the back of Matias Vina and turned into an accidental assist for Gustavo Nonato. However, the referee disallowed it after a VAR on-field review for a very, very soft Rick arm catching Ibanez in the face in the build-up.
They survived that huge let-off and added a third, as Bryan Cristante won it back in midfield, Zaniolo squirmed between two defenders, shrugged off a third and prodded the finish through the legs of the on-rushing goalkeeper. He took off his shirt to celebrate under the Curva Sud, so was inevitably booked.
Verdon lost his head and pushed Nicola Zalewski over before stamping on his chest and neck. VAR was called and the referee opted for a straight red card.
Roma 3-1 Ludogorets
Rick 42 (L), Pellegrini pens 56, 65 (R), Zaniolo 85 (R)
Sent off: Verdon 90 (L)