AC Milan humiliated their city rivals Inter Milan by winning the Derby della Madonnina 3-0 at San Siro.
The Rossoneri had not won the showpiece Serie A match in three attempts and entered Sunday’s meeting in a distant sixth place, while Inter were eight points better off and still in the title race.
The script was flipped, however, with Alex powering home the opener before Inter captain Mauro Icardi – left on the bench by Roberto Mancini – missed a second-half penalty.
While the Nerazzurri were still sulking, Carlos Bacca and M’Baye Niang fired Milan to their best derby victory in five years.
Napoli kept title rivals Juventus at arm’s length by drubbing Empoli 5-1 at the Stadio San Paolo.
Juve had temporarily dislodged the free-scoring southerners from first place but, despite the fact they fell behind to Leandro Paredes’ opener, Napoli responded confidently.
The league’s top scorer Gonzalo Higuain grabbed his 22nd goal of the season before Lorenzo Insigne’s strike, two from Jose Callejon and a Michele Camporese own goal sealed the comeback.
Juventus had earlier strolled to a 4-0 victory at Chievo to make it 12 wins on the spin.
Alvaro Morata’s first-half double put Juventus in control and Alex Sandro and Paul Pogba added to the lead after the break.
Fiorentina were frustrated following a goalless draw at Genoa, with substitute Marcos Alonso going closest to scoring for the Tuscans in second-half stoppage time.
There were stalemates at Torino and Udinese, too.
Hellas Verona remain winless after taking a single point from their trip to the Stadio Olimpico and Lazio used the point earned from their game in Udine to reach eighth place.
Danilo was sent off for the hosts with Alessandro Matri seeing red towards full-time at the Friuli.
There was no shortage of goals at the Stadio Renato Dall’Ara, where Mattia Destro fired Bologna to a dramatic 3-2 victory over Sampdoria.
Anthony Mounier and Godfred Donsah both scored to make life difficult for relegation-threatened Samp, but Luis Muriel and Joaquin Correa hit back for the visitors.
It was not to be for Vincenzo Montella’s men, however, as Destro stepped up to convert an 86th-minute penalty after Ricky Alvarez had handled in the box.
On Saturday Stephan El Shaarawy scored on his Roma debut as the Giallorossi recorded a 3-1 victory over strugglers Frosinone.
The 23-year-old, who joined on loan from AC Milan this week, acrobatically back-heeled fellow new signing Ervin Zukanovic’s cross into the net early in the second half after Frosinone striker Daniel Ciofani had cancelled out midfielder Radja Nainggolan’s first-half opener.
Miralem Pjanic then sealed victory for Roma with a late third.
Earlier in the day, Matteo Mancosu’s second-half penalty saw 18th-placed Carpi snatch a 1-1 draw against Palermo.
The hosts began brightly but went behind in the 24th minute when Alberto Gilardino slotted home to take his Serie A goal tally to 184, equalling Gabriel Batistuta for 13th on the Serie A all-time scoring list.
Carpi levelled things up in the 74th minute when Mancosu sent Stefano Sorrentino the wrong way from the penalty spot after he had been fouled in the box.
Meanwhile, German Denis ensured Atalanta earned a 1-1 draw against Sassuolo at the Azzurri d’Italia.
Domenico Berardi put the visitors in front in the 27th minute but Argentinian forward Denis equalised five minutes later after his initial spot-kick was saved by Sassuolo goalkeeper Andrea Consigli.