Roma rode their luck early on against a wasteful Frosinone, but then ran riot with a Dean Huijsen solo run, Sardar Azmoun and Leandro Paredes goals, plus the return of Chris Smalling.
The Giallorossi rested Paulo Dybala after Thursday’s 1-1 Europa League play-off draw away to Feyenoord, so Tommaso Baldanzi got his first start, with Tammy Abraham the only remaining absentee. Surprisingly, Mile Svilar was chosen ahead of Rui Patricio in goal. However, the Canarini had Simone Romagnoli suspended, plus Fares Ghedjemis, Nadir Zortea, Riccardo Marchizza, Anthony Oyono, Kevin Bonifazi and Mateus Lusuardi injured.
Huijsen charged down a Kaio Jorge shot from a corner in the opening minutes, while Romelu Lukaku tested Stefano Turati at the near post.
Matias Soule had two big chances in just over two minutes, as first he pretended to curl towards the far top corner only to take a low snooker shot that skimmed the near post, then his strike from outside the box was acrobatically palmed round the far upright by Svilar.
Reinier failed to make the most of a header at the back stick on Marco Bresciani’s cross, but Frosinone incredibly failed to score a triple opportunity on the half-hour mark.
A pull-back from the by-line found Kaio Jorge from seven yards, as the first attempt was parried by Svilar, the second charged down and the third drilled inches wide.
They were made to regret so many wasted opportunities, as Roma took the lead with a solo stunner from Huijsen, who dribbled from his own half through the centre, cut inside a defender and curled a fantastic right-foot finish into the far top corner.
He celebrated at first in the Cristiano Ronaldo style, then by putting a finger to his lips silencing the crowd. This last gesture earned him a yellow card, but there was history behind it. Huijsen had been practically a Frosinone player in January until Roma called Juventus for the loan and he demanded this move instead.
Because of that yellow card and tension in the arena, De Rossi substituted Huijsen and a tired Romelu Lukaku, moving Sardar Azmoun into a more advanced role.
A viciously dipping long-range Luca Mazzitelli volley skimmed the crossbar to land on the roof of the net, while Stephan El Shaarawy also fired just over on the counter-attack.
Svilar was fortunate to get away with a slip when playing out from the back, as Diego Llorente came to his rescue.
Roma doubled their lead when a Bryan Cristante rocket bounced right in front of Stefano Turati, making it a tricky save, and Azmoun was quickest to react on the rebound.
Caleb Okoli charged down a Baldanzi strike with his arm and a penalty was awarded following the VAR on-field review, which Leandro Paredes converted by sending Turati the wrong way.
There was even more good news for Roma, because Chris Smalling made his comeback in the final minutes, his first appearance since September 1.
Frosinone 0-3 Roma
Huijsen 38 (R), Azmoun 71 (R), Paredes pen 81 (R)