The Italy international's 97th minute equaliser completed a late comeback for the visitors who found themselves two goals down with just three minutes remaining in Turin
Second-half goals from Torino duo Danilo D'Ambrosio and Alessio Cerci took advantage of some inept defensive play before Sulley Muntari pulled one back for the visitors with two minutes remaining.
Balotelli then kept his cool to convert an injury-time penalty and grab Milan an undeserved point.
Milan's form this season has been indifferent after their opening-day loss to Hellas Verona, and Celtic - their next opponents - will be hopeful of a postive result when the two sides face each other next week in the UEFA Champions League.
The visitors, though, were buoyed by the return of Brazilian Kaka, making his second debut for the club after moving from Real Madrid on deadline day.
Massimiliano Allegri's side's injury crisis became alarmingly apparent after 20 minutes. Torino burst into the visitors' final third on two occasions with the Milan back four all at sea, but were not able to capitalise.
Cerci fired in a low free kick on 28 minutes wide on the right that had the Milan defence again scrambling to clear their lines.
A pacy Torino first-half showing threatened to upstage Kaka's return before Milan finally got a foothold in the game and went close through defender Cristian Zapata three minutes before half-time.
Balotelli was fouled by Emiliano Moretti, but the resulting free kick was headed wide by the Colombian.
Allegri's injury woes increased when Riccardo Montolivo pulled up on the stroke of half-time and was replaced by Andrea Poli.
The second period quickly saw Milan fall one goal behind after they allowed D'Ambrosio far too much space inside the penalty area - the 25-year-old was able to turn onto his right foot and lash home a curling shot past Christian Abbiati in the Milan goal.
With 20 minutes to go, Allegri took Kaka off and replaced him with Valter Birsa, but things then went bad to worse for Milan. The ever-impressive Cerci sprinted into the box after Milan's defence were again caught cold by Torino's speedy attacks.
Cerci found himself in acres of space and calmly lifted the ball over Abbiati to all but seal the match for his side.
Muntari scored a bizarre late goal to get Milan back into the match with two minutes of normal time to go as he slipped when shooting and the ball trickled into the net.
Poli was then upended by Giovanni Pasquale inside the area in stoppage time to gift Milan a chance to level from the penalty spot.
Torino were furious as they felt Poli was playing for it, but it mattered little as Balotelli sent the goalkeeper the wrong way with the last kick of the game to earn Milan a point and make it four goals in his last four games for club and country for the striker.