Torino had a mountain to climb after Wilfried Singo was sent off after 14 minutes in Rome following two yellow cards in seven minutes.
Roma followed on from their 5-1 win over Bologna last weekend and are level on 24 points with Juventus -- four points adrift of leaders AC Milan.
After Singo's dismissal the hosts piled on the pressure and it paid off with Henrikh Mkhitaryan opening the scoring after 27 minutes in the Stadio Olimpico.
Torino goalkeeper Vanja Milinkovic-Savic had pushed out a Gianluca Mancini long-range effort, but Leonardo Spinazzola sent the ball back with Mkhitaryan's follow-up hitting the post and bouncing into the net.
Jordan Veretout converted a penalty before the break after a foul on Edin Dzeko.
Simone Edera rattled the woodwork for Torino after an hour but the visitors hopes diminished when Lorenzo Pellegrini added a third after 68 minutes.
Torino captain Andrea Belotti pulled a goal back after 73 minutes with substitute Federico Bonazzoli sending the ball wide minutes later.
Marco Gianpaolo's Torino fell to their eighth defeat this season, as they sit second bottom of the table with 30 goals conceded in 12 games.