An Eder penalty opened the floodgates for Sampdoria just after the half hour and Icardi opened his account four minutes before halftime.
Pedro Obiang scored five minutes after the break before Icardi grabbed a 16-minute hat-trick, to add to his two goals in the 2-1 win over Juventus earlier in the month.
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.
Alessandro Florenzi side-footed Roma ahead in the ninth minute from Francesco Totti's pass and former Milan and Fiorentina striker Alberto Gilardino levelled eight minutes later for Bologna.
Pablo Osvaldo headed Roma back in front with his 11th goal of the season but Manolo Gabbiadini hauled Bologna level again before the half hour.
Bologna, who won 3-2 at Roma earlier in the season, went ahead for the first time nine minutes after the break when Cristian Pasquato took advantage of a mix-up in the Roma defence before Tachtsidis headed in a free kick in the 74th minute.
The action continued until the final whistle with Alessandro Diamanti twice striking the woodwork for Bologna.
Stephan El Shaaraway scored his 15th goal of the season to hand AC Milan a 1-0 win at 10-man Atalanta and Thiago Ribeiro scored a 90th minute equaliser for Cagliari in a 1-1 draw at home to Palermo in their relegation battle.
Fourth-placed Inter Milan host Torino in the late game.