Milan, Inter draw in fiery derby ... while Roma drop points again
Roma failed to make the most of Lazio's defeat as they were held 1-1 at home by relegation-threatened Atalanta in Serie A to move level on points with their city rivals in second spot, while Inter Milan drew 0-0 against AC Milan in a heated derby match.
Francesco Totti gave Roma the lead from the spot in the third minute, but Atalanta levelled with a penalty of their own and Roma couldn't convert their pressure into genuine scoring opportunities.
Roma, which were booed by their own fans, moved level with second-place Lazio on 58 points, 15 behind runaway leaders Juventus. The two meet in the penultimate round of the season.
Napoli win 3-0 at Cagliari
Napoli gave themselves hope of sneaking into the final Champions League place by cruising to a 3-0 win at Cagliari later to close the gap to five points. Rafa Benitez's side has now scored 10 goals in their past three matches.
The two Milan teams remained mired in mid-table after an entertaining match which saw three goals disallowed and a strong penalty claim by Inter denied.
"It was a very clear penalty," Inter coach Roberto Mancini said. "The referee couldn't see it because he had a player in front of him, but the goal-line official could see it very well, as he saw Palacio's foul.
"The squad is not weak, it just needs a bit more time to correct mistakes, to change mentality. We need a few more months. Maybe I was a bit too positive at the beginning."
Genoa lost 2-1
Elsewhere, Genoa lost 2-1 at Palermo and Torino drew 1-1 at Sassuolo, hindering their chances of qualifying for Europe.
Bottom-club Parma drew 2-2 at Empoli, and Chievo Verona drew 1-1 against Udinese.
With AC Milan in ninth place and Inter 10th, the Milan derby was more about city bragging rights than title hopes as in previous years.
Mancini handed teenager Assane Gnoukouri a surprise first Serie A start, and the 18-year-old impressed, playing a crucial part in Inter's bright start.
It was end-to-end action at San Siro as Milan slowly got into the match, and the Rossoneri had a goal ruled out in the 29th minute, as Nigel De Jong was offside in the build-up to Alex's header.
Inter forward Rodrigo Palacio also had a goal disallowed shortly after halftime for an offside decision on Mauro Icardi, and that seemed to encourage the Argentine, as he went close shortly before the hour, beating Diego Lopez, only to be denied by a goal-line clearance from Luca Antonelli.
Inter appealed furiously for a penalty minutes later, after Antonelli appeared to use his hand to block Hernanes' shot. The incident occurred right in front of the Nerazzurri fans, who screamed loudly as the players surrounded the referee, who waved away their protests.
Inter and their fans were angered further in the 72nd minute when Philippe Mexes scored an own goal, but it was disallowed for a Palacio shirt tug on Marco Van Ginkel in the build-up, sparing the Milan defender's blushes.