Juventus kept their hopes of finishing in the top four alive after thrashing Sassuolo 3-1 at Mapei Stadium.
Sassuolo had a big chance to go ahead in the 16th minute from the penalty spot but veteran goalkeeper Gianluigi Buffon pulled off a fantasic save to deny Domenico Berardi.
Adrien Rabiot eventually broke the dealock for Bianconeri just before the half-hour mark and setup Cristiano Ronaldo, who doubled their lead and scored his 100th goal for the club on the stroke of half-time.
Giacomo Raspadori pulled a goal back for Roberto Di Zerbi's charges on the hour-mark but Paulo Dybala restored the two-goal cushion for the visitors in the 66th minute with a lovely chip over shot-stopper Andrea Consigli and also clocked his 100th goal for the Old Lady.
Champions Inter Milan extended their unbeaten run to 20 matches after drubbing Roma 3-1 at the San Siro Stadium.
Inter raced to a two-goal lead in the first 20 minutes courtesy of goals by Marcelo Brozovic and Matias Vecino.
However, Henrikh Mkhitaryan pulled a goal back for the visitors on the half-hour mark, as Roma went to the break trailing only by one goal.
Paulo Fonseca's charges were in the game for virtualy the whole of the second stanza before Romelu Lukaku sealed the deal for Antonio Conte's men with the third goal in the last minute.
AC Milan reclaimed their third spot after trouncing Torino 7-0 thanks to a second-half hat-trick by Ante Rebic at Stadio Olimpico.
Theo Hernandez gave Rossoneri the lead in the 19th minute with a sublime strike into the top corner and Franck Kessie made it 2-0 seven minutes later with a strike from the penalty spot.
Brahim Diaz killed off the game for Milan with their third goal five minutes from the break, before the visitors ran riot, with Hernandez making it 4-0 in the 62nd minute and getting his brace.
Rebic made it 5-0 five minutes later, quickly got the sixth goal and grabbed his brace too 18 minutes before time and completed his hat-trick by making it 7-0 in the last 11 minutes.