Armand Laurienté scored twice for Sassuolo in Sunday's match before Nicola Zalewski pulled one back.
But Roma defender Marash Kumbulla was sent off for violent conduct at the end of the first half and Domenico Berardi converted the resulting penalty.
Paulo Dybala got 10-man Roma back into the match early in the second half but Andrea Pinamonti all but sealed the result with 15 minutes remaining before Georginio Wijnaldum's late goal.
Roma remained level on points with AC Milan, who host relegation-threatened Salernitana on Monday and will be looking to make the most of their rivals' slipups.
Roma's next Serie A match is against Lazio and Mourinho will again not be on the bench as he serves a two-match ban after remonstrating with officials in Roma's match against Cremonese.
The home side were looking to move level with Inter in second and almost took the lead in less than two minutes as Wijnaldum was sent clear, but he fired straight at Sassuolo goalkeeper Andrea Consigli.
Sassuolo took the lead in the 13th minute on a counterattack. Davide Frattesi's shot was charged down by Chris Smalling, then Pinamonti's effort was parried by goalkeeper Rui Patrício but Laurienté tapped in the rebound.
Laurienté doubled his tally five minutes later, but Roma recovered from the shock to pull one back in the 26th when Zalewski's volley bounced into the ground and over Consigli.
Matters went from bad to worse for Roma on the stroke of halftime when Kumbulla was shown a straight red card for a kick at Berardi, who then drilled home the spot kick.
Roma brought on Dybala at halftime, and he had an immediate impact as he sent a swerving effort into the top right corner five minutes later.
Sassuolo restored their two-goal advantage in the 75th when Laurienté turned provider to set up Pinamonti's goal.
Wijnaldum reduced the deficit in stoppage time.
AAP