Ten-man Atalanta missed the chance to move second in Serie A on Thursday with a 1-1 draw against Roma.
But Napoli thrashed Champions League rivals Lazio 5-2 to boost their hopes of a return to elite European football next season.
Bryan Cristante rifled in a long-distance equaliser to rescue a point for Roma in a game where both teams finished with 10 men.
The visitors had dominated taking the lead after 25 minutes through Ruslan Malinovskiy in the Stadio Olimpico.
But the Bergamo side played the final 20 minutes a man down after Robin Gosens was sent off for a second yellow card.
Cristante put his name on the scoresheet with quarter of an hour to go.
Atalanta missed the chance to overtake AC Milan who lost at home to Sassuolo midweek, but move third ahead of champions Juventus on goal difference.
Napoli move just three points behind second-placed Milan. Lazio dropped to five points behind Napoli in sixth.
Roma are a further three points behind in seventh with their Champions League hopes dwindling.
“It’s difficult to explain some of the goals we missed,” said Atalanta coach Gian Piero Gasperini.
“We had so many opportunities to win but in the end we have to be thankful for not having lost.
“We’re still in third place and maintain our advantage over the chasing pack.”
Atalanta had dominated but were unable to take advantage of their many scoring chances.
Malinovskyi, who also scored the winner against Juve last weekend, latched onto a Gosens cross to fire into the roof of the net.
Pau Lopez proved decisive in the Roma goal denying Duvan Zapata and Josip Ilicic with Luis Muriel missing a chance to score a second before Gosens’ sending off.
Roma piled forward with Lorenzo Pellegrini sending through for Edin Dzeko but Pierluigi Gollini was solid in the Atalanta goal.
Roma also finished the game a man down with Roger Ibanez sent off deep into injury time.
In Naples, Lazio’s five-match winning streak ended but they are still not out of the Champions League running with a game in hand.
Napoli took the lead through a Lorenzo Insigne penalty on seven minutes awarded following a VAR review, the first of a brace on the night for the team skipper.
Matteo Politano added a second after 12 minutes with Insigne lobbing in a third eight minutes after the break.
Joaquin Correa was unlucky not to pull Lazio back after 19 minutes, hitting the post.
Piotr Zielinski set up Dries Mertens for Napoli’s fourth after 65 minutes.
Lazio launched a fightback with Ciro Immobile pulling a goal back after 70 minutes with Sergej Milinkovic-Savic grabbing a second with a free-kick four minutes later.
But substitute Victor Osimhen snuffed out a revival with Napoli’s fifth with 10 minutes to go.