Matteo Politano's tidy finish shortly after half-time handed Napoli a crucial 1-0 win over AC Milan to seriously damage the hosts' Serie A title hopes.
With Inter beating Torino 2-1 earlier in the day, second-placed Milan needed to win against the Naples club to reduce the nine-point gap and stand any realistic chance of scooping up the Scudetto. But their narrow defeat to Gennaro Gattuso's men has left the Rossoneri with a mountain to climb.
It's a significant three points for Napoli in their pursuit of Champions League qualification. They leapfrog Roma into fifth and are now two points off Atalanta in fourth with a game in hand.
Kessie ready to commit to Milan
Hakan Calhanoglu had the game's first real chance in the tenth minute, but he curled his shot wide in a half where Napoli were the better side having enjoyed more possession and shots on goal.
Piotr Zielinski was at the centre of the visitors' best chances. In the 16th minute the Poland international lost his balance as he toe-poked a shot at Gianluigi Donnarumma, which the 22-year-old had to dive to his left to parry away.
Seven minutes later and Zielinski came close again. He tried to pick out the bottom corner with a low first-time effort, but the 26-year-old dragged his shot just wide of Donnarumma's left post.
Politano fired Napoli in front shortly after the break to finish off a slick counter-attack. Zielinski played a perfectly weighted pass into the onrushing winger before he slotted the ball off his weaker right foot past Donnarumma into the bottom corner.
Napoli pushed hard for a second and Fabian Ruiz came close in the 58th minute, but his left-footed half-volley was pushed away by Donnarumma. Milan then responded with some good goalscoring opportunities.
Rafael Leao missed one of Milan's best chances of the game in the 64th minute when he failed to maintain his composure from close-range. The Portuguese striker misdirected a floated cross from substitute Ante Rebic towards the far post. That was before Rebic's instinctive header 20 minutes from time forced David Ospina into a smart reflex save.
Milan had a penalty appeal shut down when Theo Hernandez went down in the box under a challenge from Tiémoué Bakayoko, but the referee said no penalty after a lengthy VAR delay.
Napoli defended resolutely to hold onto their slender lead, as Rebic saw red in injury-time for verbally abusing the referee, and sealed a win that could potentially decide this season's Serie A title race.
TALKING POINT - Inter's title to lose
AC Milan really needed to win today but they failed to muster even a point against a Napoli side who deserved the victory.
Milan were perhaps unfortunate not to get a penalty late on. Nevertheless, Inter Milan's nine-point lead at the top of the table looks almost impossible to catch now.
MAN OF THE MATCH - Piotr Zielinski
The 26-year-old Poland international was instrumental in Napoli's big moments and his perfectly-weighted pass to assist Politano's goal was classy.
The number ten was too much for the Milan defence to handle and he was particularly dangerous on the counter-attack.
AC Milan: Donnarumma (6), Dalot (6), Gabbia (6), Tomori (6), Hernandez (6), Kessie (6), Tonali (5), Castillejo (5), Calhanoglu (6), Krunic (6), Leao (7). Subs: Diaz (6), Hauge (6), Meite (6), Rebic (6), Saelemaekers (6)
Napoli: Ospina (6), Di Lorenzo (6), Maksimovic (6), Koulibaly (7), Hysaj (6), Ruiz (7), Demme (6), Zielinski (8), Politano (7), Mertens (6), Insigne (6). Subs: Bakayoko (N/A), Elmas (N/A), Osimhen (5), Rui (N/A)
16' - GOOD SAVE! Di Lorenzo picks out Zielinski in space between the Milan centre backs just outside the box, but he loses his balance and toepokes a shot at Donnarumma which he can save relatively comfortably, diving to his left to parry away. Napoli are starting to ramp up the pressure.
29' - BIG MISS! Insigne picks out Zielinski who in turns tries to pick out the bottom corner, but he bends his first-time effort off his left boot wide of Donnarumma's left post! He got too much bend on it! That was the biggest chance of the night so far.
50 - GOAL!! Politano fires Napoli in front and it could be a huge blow to Milan's title hopes! It was an incisive counter-attack. Zielinski played a perfectly weighted pass into the onrushing winger before he slotted the ball off his weaker right foot past Donnarumma into the bottom corner. Napoli deserved that.
58' - BIG CHANCE! Zielinski's low driven ball across the goalmouth finds Politano, but his first touch was not the best - the pace surprised him - and it leaves his grasp. Napoli come forward again and Ruiz unleashes a left-footed half-volley on goal which Donnarumma dives to his right to bat away! Ruiz follows up with a rebound but he cannot get it on target!
64' - BIG CHANCE! A brilliant floated cross into the box from Rebic finds Leao at the far post, but he squanders his effort from close-range with a tame sidefooted shot and Donnarumma can easily claim it! It was a great goalscoring opportunity for the Portuguese and he should have converted it!
87' - VAR is reviewing that challenge from Bakayoko on Hernandez a few minutes ago. Will Milan get a penalty? The referee goes to the screen and says NO PENALTY! Gattuso is booked for his protests.
90+3' - CLOSE! Osimhen fires just wide from just outside the box! At the other end Maksimovic does brilliantly to hook clear a cross looking for Diaz!
Gazidis to begin treatment for throat cancer
AC Milan confirm signing of Chelsea striker Giroud