Romelu Lukaku scored from the penalty spot as Inter beat title rivals Napoli 1-0 on Wednesday to move one point behind Serie A leaders and city rivals Milan who were held at Genoa.
Defending champions Juventus sit three points behind Inter after Cristiano Ronaldo missed a penalty in a 1-1 home draw with Atalanta.
Napoli — who played the final quarter of an hour a man down after captain Lorenzo Insigne was sent off — drop to fourth, a further point adrift.
Insigne saw red for arguing with the referee after goalkeeper David Ospina fouled Inter’s Matteo Darmian to concede the crucial spot-kick.
“Only in Italy players are thrown out for this stuff,” fumed Napoli coach Gennaro Gattuso, blasting “a dubious penalty”.
Lukaku stepped up to slot in on 73 minutes for his 10th league goal this season, joining Ronaldo and Zlatan Ibrahimovic at the top of the Serie A goalscoring chart.
For Antonio Conte’s Inter it was a fifth consecutive league win as they target a first Scudetto since 2010, with their European hopes now over.
Milan, playing a fourth consecutive league game without the injured Ibrahimovic, came from behind twice to secure a 2-2 draw as Mattia Destro scored a double for Genoa.
The Italian striker tapped in a rebound after Milan goalkeeper Gianluigi Donnarumma denied Eldor Shomurodov just after the break.
Five minutes later, Davide Calabria’s long-range effort pulled Milan level before Destro headed in a second on the hour.
But French defender Pierre Kalulu nodded in from close range to rescue a second consecutive draw for Milan, who stay unbeaten in Serie A since March and are looking to deny Juventus a 10th straight league triumph this season.
Sixth Juventus stalemate
In Turin, unbeaten Juventus were held for the sixth time in Serie A this term.
Federico Chiesa curled in a powerful shot to put Juventus ahead before the half-hour mark.
But Atalanta hit back with Remo Freuler grabbing the equaliser 12 minutes into the second half, shortly after captain Papu Gomez came off the bench.
The build-up to the game had been overshadowed by tensions between coach Gian Piero Gasperini and Gomez, left out of their last two league games amid speculation he could leave the Bergamo club in January.
Ronaldo, who had fired over the target in the fifth minute, had a rare penalty miss after an hour following a Hans Hateboer foul on Chiesa.
The Portuguese striker’s weak effort was easily saved by Atalanta keeper Pierluigi Gollini.
Gollini also denied Alvaro Morata on 48 and 62 minutes from close range.
Spaniard Morata had missed a golden chance after 12 minutes, sending a weak back-heel flick wide in front of an open goal.
At the other end of the pitch, Juventus goalkeeper Wojciech Szczesny saved a Cristian Romero header with a quarter of an hour to go.
“You have to take these games home,” said Juventus coach Andrea Pirlo.
“We had many opportunities and we weren’t able to close it. When you leave the game in the balance anything can happen.”
Atalanta, who also held Juventus the last time they played in Turin last July, are eighth, 10 points behind AC Milan, after a slow start to the campaign.
“It’s a great result,” said Gasperini. “We were very good, at one point we were convinced of winning it.
“We played with personality against a team that are one of the favourites for the Scudetto.”
Fifth-placed Sassuolo drew 1-1 at Fiorentina, whose winless run stretched to seven games.