Lorenzo Insigne celebrates after scoring Napoli’s second goal which turned out to be the winner against Juventus. Photograph: SSC Napoli via Getty Images
The Serie A leaders, Juventus, suffered a shock 2-1 defeat at Napoli, with the coach Maurizio Sarri returning to his former club for the first time, though Cristiano Ronaldo still managed to score for an eighth league game in a row for the visitors.
Juve’s lead was cut to three points by Internazionale, who drew 1-1 at home to Cagliari earlier on Sunday.
Piotr Zielinski, whom Sarri brought to Napoli during his three-year stint at the club, broke the deadlock in the 63rd minute and Lorenzo Insigne hooked in the home side’s second goal with four minutes left.
An out-of-sorts Juve took more than an hour to manage a shot on target although Ronaldo pulled one back in the 90th minute to continue his scoring run.
Sarri, who led Napoli to second place in his final season in charge in 2017-18, was jeered by the crowd and insulting banners were placed in various parts of the city before the match.
Second-placed Inter were held to a third successive 1-1 draw after Radja Nainggolan, a player they loaned to Cagliari for this season, scored a second-half equaliser for the Sardinian side.
The Belgian, who was told by Inter’s coach, Antonio Conte, that there was no place for him this season, stunned the San Siro with a 78th-minute goal to cancel out Lautaro Martínez’s first-half opener.
Martínez was sent off in stoppage time for his furious reaction after being given a yellow card for a foul and had to be ushered away by teammates as he continued to remonstrate with the referee. The game ended in chaotic scenes as Inter staff, including Conte, surrounded the referee to protest. A livid Conte refused to give any interviews.
Inter gave Ashley Young his debut and the former Manchester United player set up their goal in the 29th minute with a cross which Martínez met with a powerful header. Stefano Sensi was twice close for Inter in the second half but they failed to add a second goal and paid the price. João Pedro pulled back the ball from near the corner and it ran on to Nainggolan whose low drive from 25 metres took a deflection and went in off the foot of the post.
Lazio’s 11-match winning run in Serie A ended on Sunday after a 1-1 derby draw with Roma that was decided by two goalkeeping errors.
Thomas Strakosha misjudged a cross to allow Roma’s Edin Dzeko to head in the opener after 26 minutes but Lazio were level eight minutes later when Pau López failed to gather his own punch before Francesco Acerbi tapped in.
Lazio are on 46 points, two behind Inter with a game in hand. Roma, in fourth, have 39 points, one more than Atalanta.
“I’m proud of how my players did, we played very well against an excellent team,” Roma’s coach, Paulo Fonseca, said.
Roma were awarded a penalty in the second half when Justin Kluivert went down in the box but the decision was overturned after a pitchside review by the referee Gianpaolo Calvarese.
Strakosha then atoned for his earlier error with two good saves from Dzeko.
In La Liga Nacho was the unlikely hero as Real Madrid snatched a 1-0 win at Real Valladolid to move three points clear at the top.
The defender was handed only his fourth league start of the season because the usual right-back, Dani Carvajal, was suspended but he proved the difference in a tight encounter by heading home a Toni Kroos cross in the 78th minute.
The defender raced straight over to the visiting dugout to embrace his coach, Zinedine Zidane, after scoring his first league goal in over two years as Real finally broke the deadlock after struggling to break down the hosts’ deep-lying defence.
Real’s midfielder Casemiro thought he had given Zidane’s side an early lead when he headed home a free-kick from Kroos but the goal was ruled out for offside after a VAR review.
Valladolid’s Sergi Guardiola, meanwhile, netted late in the game but that was also ruled offside.
Real, who have not won the title since 2017, lead on 46 points after 21 games while Barça are second on 43.