Knappe åtte minutter tok det Vidal å bli tomålsscorer for første gang i serie A. Han fikk god tid til å sette inn 1–0 i kampens fjerde minutt.
Fire minutter senere banket han Juventus opp i en tomålsledelse fra kanten av 16-meteren.
Mer trøbbel var i vente for Roma da keeper Maarten Stekelenburg ble utvist etter 26 minutter.
Han taklet Claudio Marchisio og lagde straffespark. Den bommet først Andrea Pirlo på, men veteranen satte returen i mål.
Juventus hadde full kontroll også etter sidebyttet. Kveldens siste scoring satte Marchisio inn på pasning fra Mirko Vucinic tidlig i annen omgang.
Torino-laget fikk dermed en luke på tre poeng til Milan, som rotet bort to poeng hjemme mot Bologna.
Artikkelen fortsetter under bildet!
– Vi må passe på hva vi selv driver med. Nå er vi foran og styrer vår egen skjebne. Vi ser ikke på andre, men fortsetter å spille slik vi har gjort, sa Juventus-trener Antonio Conte.
Zlatan Ibrahimovic reddet ett poeng for Milan på overtid søndag, men 1-1-resultatet kan bli kostbart i gullkampen.
– Ingen trodde vi kun skulle få ett poeng på to hjemmekamper, sa trener Massimiliano Allegri med referanse til 1-2-tapet for Fiorentina tidligere i måneden.
– Vi må komme tilbake i vinnerstilen på hjemmebane, og så får vi se, la han til.
Zlatan hadde ingen stor dag på jobben, men styrte et innlegg fra Urby Emanuelson i mål fra kort hold like før slutt.
Gaston Ramirez ga Bologna ledelsen etter 26 minutter. Milan avsluttet med ti mann etter at Daniele Bonera ble utvist åtte minutter før slutt.