Giampaolo Pazzini climbed off the bench to score two goals as AC Milan came from behind to beat Catania 4-2 at San Siro on Sunday.
The hosts dominated proceedings but found themselves 1-0 down to a Nicola Legrottaglie header before Matthieu Flamini equalised just before half-time.
Catania took another shock lead through Gonzalo Bergessio with 25 minutes left before Milan coach Massimiliano Allegri brought on Pazzini and the Italian striker grabbed two goals in as many minutes before a Mario Balotelli penalty sealed the win in injury-time, moving Milan back into third place.
Balotelli and Flamini returned to the Milan starting line-up having completed spells on the sidelines through suspension.
But the home side were without the services of club captain Massimo Ambrosini after he was forced off against Juventus with ankle ligament damage.
Meanwhile, Catania goalkeeper Mariano Andujar, midfielder Giuseppe Bellusci and Nicolas Spolli all missed the game through suspension after last Sunday’s 1-1 derby draw with Palermo ended in a mass brawl.
There was a very early penalty claim from Milan as Alexis Rolin seemed to use his arm to block Kevin-Prince Boateng’s cross, but the referee waved away the protests.
Milan continued to pour forward during the opening exchanges and created a number of dangerous chances, the best of which was dragged wide of Alberto Frison’s post by Balotelli.
The Italy international could then have put the hosts ahead in the 15th minute but his outstretched leg narrowly missed Boateng’s fierce ball across the face of goal.
And Milan were made to rue that miss, as Catania took a surprise lead just before the half-hour mark. Francesco Lodi swung a free-kick towards the far post and Legrottaglie rose the highest to head home.
Lodi almost immediately gave the visitors a two-goal lead but his low effort was kept out by Marco Amelia, before Balotelli hit the crossbar at the other end.
Milan continued to pile on the pressure but failed to find an equaliser as Flamini and Balotelli both had scrappy efforts blocked in front of goal.
Frison saw most of the action during the first 45 minutes and made a fantastic save to tip a Balotelli free-kick round the post.
However, the Catania keeper could not prevent Flamini’s fierce volley from hitting the far corner of his net as Milan finally equalised on the stroke of half-time.
Stephan El Shaarawy started the second half brightly and brought a good diving save from Frison before being denied a penalty after Legrottaglie forced him to the ground.
Milan continued to dominate proceedings but the visitors took another shock lead in the 65th-minute after Pablo Barrientos released Gonzalo Bergessio down the left and the Argentine striker chipped the ball over the onrushing Amelia.
Allegri brought on Giampaolo Pazzini in response to going behind and less than 10 minutes later the Italian forward had two goals to his name.
Frison could only parry Balotelli’s curled strike and the substitute followed up to tap into an empty net before the goalkeeper saved an El Shaarawy effort and Pazzini smashed home the rebound.
The visitors conceded a penalty in injury-time after Balotelli was fouled inside the area, which the former Manchester City man calmly converted to seal the victory.