Serie A: Catania 1 Milan 3
Massimiliano Allegri's side were on course to make it six Serie A games without a win when Lucas Castro put the bottom-placed home team ahead after 13 minutes, but their captain Riccardo Montolivo equalised with a well-taken volley just six minutes later.
Balotelli then turned the game on its head with a powerful free-kick just after the hour mark, before the hosts' chances of taking anything from the match were dented further when Panagiotis Tachtsidis was shown a straight red card for a foul on the Italy international striker shortly after.
And Milan sealed all three points courtesy of Kaka's 99th goal for the club nine minutes from time as the Brazilian playmaker rolled back the years with a typically incisive run before firing into the roof of the net from close range.
Catania boss Luigi De Canio opted to make six changes from their 4-1 loss to Torino last weekend, including altering his entire back four.
Allegri, meanwhile, was without first-choice keeper Christian Abbiati due to illness, and defenders Ignazio Abate (ankle) and Cristian Zapata (suspended) were also out.
Gabriel, Andrea Poli and Matias Silvestre came in to the Milan starting XI as they looked to build on their 3-0 UEFA Champions League win at Celtic in midweek.
However, the visitors got off to the worse possible start when Castro’s shot deceived Gabriel after deflecting off Daniele Bonera to give Catania the lead on 13 minutes.
Maxi Lopez kept the ball alive after a left-wing cross, and Castro danced round two challenges before firing home via Bonera’s knee.
But De Canio’s side were ahead for just six minutes, as captain Montolivo’s controlled volley from Emanuelson’s dangerous cross beat Mariano Andujar.
Milan then looked most likely to go in front, although Catania threatened just before the interval when the 21-year-old Gabriel was only able to parry Luciano Monzon’s powerful effort before holding on at the second attempt.
The home side came out on the front foot after the break too, but were undone when Balotelli rifled a low 20-yard free-kick past the helpless Andujar on 63 minutes for his fourth league goal of the season.
And things went from bad to worse for Catania almost immediately, as Greek midfielder Tachtsidis was dismissed by referee Nicola Rizzola after bringing down Balotelli.
Kaka finally made Milan's numerical advantage pay in the 81st minute with a fine individual effort, before Balotelli was perhaps wisely withdrawn by Allegri after engaging in a running battle with Argentine defender Nicolas Spolli.