Poor defense by Roma contributed to both goals. Gianluca Mancini left Demiral unmarked at the far post to redirect in a free kick from Paulo Dybala only three minutes in at the Stadio Olimpico. Then Jordan Veretout lost control inside his own area and reacted by fouling Dybala to set up a penalty from Ronaldo.
It was Ronaldo’s ninth goal in his last six league matches, making him the most prolific scorer in Europe’s top five leagues since the start of December. Both Demiral and Roma midfielder Nicolò Zaniolo exited the game due to injuries before the break.
Diego Perotti pulled one back for Roma midway through the second half with a penalty following a VAR consultation to determine a hand ball. Roma forward Edin Dzeko hit the post just before Perotti's penalty.
Sampdoria fought back to beat fellow struggler Brescia 5-1 and go five points above the relegation zone.
Brescia, which remained a point from safety, took the lead through Jhon Chancellor.
But Karol Linetty scored and set up the other goal for Jakub Jankto to put Samp ahead at the break.
Mario Balotelli thought he had leveled for Brescia but he was offside. He also missed several other chances.
Samp extended its lead with Fabio Quagliarella's penalty after Brescia defender Massimiliano Mangraviti was judged to have handled the ball.
Gianluca Caprari sealed the match seconds after coming off the bench and Quagliarella added a fifth late on with a cheeky lob.
Spal remained bottom, three points from safety, after a narrow 1-0 loss at Fiorentina.
Gabriel Strefezza hit the woodwork for Spal before the break but German Pezzella headed in a corner with eight minutes remaining to end Fiorentina’s four-match winless run.
Sassuolo was left five points above the drop zone after losing 3-0 at Udinese, while Torino beat Bologna 1-0 to go seventh.
Also, Hellas Verona moved up to eighth with a 2-1 win over Genoa.
Associated Press writer Daniella Matar contributed.
More AP soccer: https://apnews.com/Soccer and https://twitter.com/AP_Sports