The Swedish striker scored a penalty and then added a late headed goal as the league leaders also put a dent in the Europa League hopes of the visitors.

But Milan, who now lead Juventus by seven points in the table, had looked on course to pay for a string of misses in the first half as Pablo Osvaldo gave the visitors the lead just before half-time.

Udinese left it late to get the point which takes them level with Lazio in third place thanks to a 1-1 draw at Palermo.

Gabriel Torje cancelled out Fabrizio Miccoli's first half goal in the 84th minute to keep Francesco Guidolin's side in the hunt for a place in the Champions League next season.

Palermo remain in mid-table with no relegation worries, but no European ambitions either.