The 19-year-old Italian striker produced two fine goals as Milan moved up to 10th on the league table, picking up their first victory since September 2.

Milan took the lead in the 16th minute when El Shaarawy played a neat one-two with Ricardo Montolivo, the latter's pass splitting three Cagliari defenders for his team-mate to score.

El Shaarawy finished the game off in the 82nd minute, drifting away from his marker to find space at the top of the box and then taking Massimo Ambrosini's pass to burst into the penalty area and slot the ball past Michael Agazzi in the Cagliari goal.

Elsewhere, second-placed Napoli hosted third-placed Lazio and sent the local fans home happy after a 3-0 victory.

Edinson Cavani scored a hat-trick for Napoli and then missed an opportunity from the penalty spot to score his fourth goal but still received a standing ovation at the final whistle.

Napoli have moved to 13 points and are level with Juventus at the top of Serie A's table.

The two teams have the same goal difference (+9), goals scored (11) and goals against (2).

Lazio dropped to fifth after Sampdoria drew 1-1 with Roma to take third position and Inter Milan won 2-0 away to Chievo to move up to fourth.

In other Serie A results, Pescara defeated Palermo 1-0 to pick up their first win in Serie A since 1993, while Catania overcame Atalanta 2-1, Genoa drew 1-1 with Parma and Torino played out a goalless draw with Udinese.