Milan striker Stephan El Shaarawy (Photo: Reuters)
The scoreline relieved some of the pressure on Milan coach Massimiliano Allegri, whose side are now 12th on 15 points after a performance that suggested they might have a decent season in them yet.
El Shaarawy hailed his team mates and Milan president Silvio Berlusconi, who flew in by helicopter on Friday to give the players a quick pep talk ahead of the game.
"We really played very well, in the first half as well, we started really well. Then we went a goal down due to an error but in the end we're happy and the president is happy as well," he said.
"Let's say that he's been close to us recently and it gave us a little push."
Napoli could have moved up to second place behind champions Juventus but Walter Mazzari's side remained third on 27 points.
Juventus have 32 from 13 games with second placed Inter Milan, who host Cagliari in Sunday's main programme, five points adrift.
Napoli took the lead after only four minutes with a bizarre goal from Gokhan Inler, whose tame long-range strike seemed to change trajectory completely in mid-air and confused the already-committed Christian Abbiati.
Milan's front three were causing Napoli's defence problems though, and they should have equalised five minutes later when Riccardo Montolivo weakly dragged a shot wide when presented with a glorious opportunity by Kevin-Prince Boateng.
Napoli doubled their lead on the half hour through local boy Lorenzo Insigne, who collected Christian Maggio's cross and fired a deflected shot through the legs of the hapless Abbiati.
It could have been 3-0 two minutes later when Insigne intercepted Milan left-back Kevin Constant's poor cross-field pass and raced through on goal before sliding a poor pass to Edinson Cavani instead of shooting.
El Shaarawy, who scored his first international goal on Wednesday in a 2-1 defeat by France, then pulled Milan back into the game with his ninth goal of the season a minute from half-time.
The 20-year-old strolled onto Francesco Acerbi's pass on the edge of the area and sent a wonderful first-time strike over Napoli keeper Morgan De Sanctis and into the top right-hand corner.
Milan almost equalised twice early in the second half, first on 57 minutes when Bojan Krkic finished a swift counter-attack by toe-poking wide and then a minute later Boateng missed with a header.
While Milan looked the better side, Napoli were always a threat on the break and Marek Hamsik should have put the game beyond reach in the 60th when he shot wide after a Cavani flick-on had put him one-on-one with Abbiati.
El Shaarawy gave Milan a deserved reward for their attacking play with eight minutes to go when he raced onto substitute Robinho's through ball and calmly slotted home the equaliser. It was his 10th of the season.
Juve, who welcome Chelsea in a crunch Champions League encounter in Turin on Tuesday, fielded arguably their strongest possible side but could not break down a solid Lazio - buoyed by last weekend's derby win over AS Roma.
Vladimir Petkovic's Lazio had goalkeeper Federico Marchetti to thank after he made a series of saves including one incredible stop from a deflected Fabio Quagliarella strike.
"It was a sudden deflection and I was quite lucky to push it over the bar," Marchetti told Sky Sport Italia. "It's an important point, not many teams come here and go home with anything. We'll enjoy it, knowing that we need to improve."
(For more sports news and updates, follow Ahram Online Sports on Twitter at @AO Sports and on Facebook at AhramOnlineSports)