Cavani strikes again, Icardi hits four for Samp
Cavani had endured a frustrating afternoon until he hit his 18th goal of the season in the 84th minute to end Parma's unbeaten home record and leave Napoli three points behind leaders Juventus, who drew 1-1 with Genoa on Saturday.
AS Roma lived up to their reputation as Serie A's most entertaining side in another high-scoring game, this time drawing 3-3 at Bologna.
Eighth-placed Roma, who have the best attacking and second-worst defensive record in the league, twice led in the first half and trailed 3-2 early in the second before Panagiotis Tachtsidis gave them a point.
Stephan El Shaaraway scored his 15th goal of the season to hand AC Milan a 1-0 win at 10-man Atalanta, moving them up to fifth place with 37 points.
Milan are one point ahead of fading Fiorentina who lost 2-1 to an 88th-minute Lucas Castro goal at Catania and only three behind neighbours Inter Milan who were held 2-2 at home by Torino.
Inter needed a 66th-minute goal from Esteban Cambiasso after Riccardo Meggiorini scored either side of half-time to put the visitors ahead. Cristian Chivu had given Inter a fifth-minute lead from a free-kick.
Thiago Ribeiro headed a controversial 90th-minute equaliser for Cagliari in a 1-1 draw at home to Palermo in their relegation battle.
Palermo, one off the bottom in 19th place, were furious, believing the throw-in in the run-up to Cagliari's goal should have been awarded to them.
Fabrizio Miccoli and coach Gian Piero Gasperini were sent off for protesting from the substitutes' bench.
Udinese beat bottom club Siena 1-0 in the other game.
Second-placed Napoli's victory at Parma took them to 46 points from 22 games, three behind Juventus and three clear of Lazio who lost at home to Chievo on Saturday.
"Parma are a great side who work hard and never give up," Napoli coach Walter Mazzarri said. "We are extremely satisfied with this fundamental victory.
"We are going way beyond expectations but we must also remember that every game in Italy is truly complicated."
Napoli went ahead in the 20th minute when Marek Hamsik sprang the offside trap to poke the ball past Antonio Mirante.
Uruguay forward Cavani was having little joy as he misplaced a header and then mistimed a run on to a through-ball which would have left him with only Mirante to beat just before the break.
Napoli conceded a sloppy equaliser in the 74th minute when Nicola Sansone's cross deflected off Paolo Cannavaro and found its way between Morgan De Sanctis and the near post.
Cavani wasted another chance when he scuffed a shot after being set free but made amends two minutes later when he broke clear of the Parma defender, easily rounded Mirante and scored into an empty net.