Juventus are four points away from a sixth successive Serie A title after nearest challengers Roma lost the Derby della Capitale to Lazio.
Roma, who had defender Antonio Rudiger sent off in stoppage time, fell behind to Keita Balde Diao’s finish.
Daniele de Rossi equalised with a controversial penalty after Wallace was wrongly adjudged to have fouled Kevin Strootman.
Dusan Basta and Balde Diao struck in the second half to seal Lazio’s win.
Roma’s misery was compounded when Rudiger was shown a straight red card for a high challenge on Lazio forward Filip Djordevic in the closing stages.
Second-placed Roma would have cut Juventus’ lead to six points with a win but fourth-placed Lazio, who still have a chance of qualifying for the Champions League, were the dominant team throughout.
Replays showed there was no contact when Strootman went down to win a penalty.
Massimiliano Allegri’s Juventus will win the title if they win at home to mid-table Torino next Saturday (19:45 BST) and Roma fail to win away to AC Milan on Sunday, 7 May (19:45 BST).
Roma host Juventus in the league on 14 May.