Fabio Grosso had the worst possible debut on the Brescia bench, losing 4-0 at home down to 10 men, as Andrea Belotti and Alex Berenguer braces ended the Torino crisis.
Cagliari gave Fiorentina a football lesson and consolidated their new status with a 5-2 victory, inspired by Radja Nainggolan’s screamer and hat-trick of assists.
Verona had been in front at San Siro with a Valerio Verre penalty, but Inter turned it around thanks to Matias Vecino and a Nicolò Barella stunner.
Milan had the better chances for most of the game in Turin, but Paulo Dybala gave Juventus victory with a moment of magic after replacing Cristiano Ronaldo.
Lazio locked down third place alongside Cagliari with a fourth straight victory, but Lecce were angry at the referee for a disallowed goal.
Napoli were jeered off the pitch after another very disappointing result, held 0-0 at home by Genoa, with Eljif Elmas and Andrea Pinamonti creating the best chances.
Mattia Sprocati and Andreas Cornelius goals gave Parma a surprise victory over Roma, who slide out of the top four.
Atalanta were angry with the referee after a 0-0 draw with Sampdoria, as Ruslan Malinovskyi was sent off and Alex Ferrari avoided a red.
Francesco Caputo scored his first goals since September as Sassuolo overtook Bologna in the Serie A table with a 3-1 win.
Udinese scraped a 0-0 draw with SPAL, because Juan Musso saved an Andrea Petagna penalty at the 98th minute.