Polish striker Krzysztof Piatek had put AC Milan ahead from the spot after 18 minutes in the clash between midtable rivals in the Olympic Stadium on Thursday (September 26).
But in four-minute spell, Belotti sealed all three points for Walter Mazzarri's side who had suffered back-to-back losses in their previous two games.
Torino move up to sixth in the table, equal on nine points with Napoli and Cagliari after five games, but six points behind leaders Inter Milan.
AC Milan drop to 13th, following on from last weekend's 2-0 derby defeat.
"We didn't want to lose a third in a row," said Belotti.
"They made us dance in the first half but when we returned after the break we were a different side."
Both northern Italian rivals were desperate to get back to winning ways with Milan going ahead early after a penalty awarded when Lorenzo De Silvestri fouled Rafael Leao.
Piatek -- third top scorer in Serie A last season with 22 goals -- stepped up to slot in the resulting penalty.
Belotti missed a chance to equalise just before the break, sending the ball over when alone in front of goal, with Piatek also wasteful firing Alessio Romagnoli's perfect cross wide on 53 minutes.
But Torino piled on the pressure and it paid off with Belotti breaking through on 72 minutes with a blistering equaliser which left Gianluigi Donnarumma with no chance in the Milan goal.
And the 25-year-old added a second minutes later amid confusion in front of the Milan goal.
Belotti sent the ball through for Simone Zaza, but Donnarumma cleared with the rebound finding the Italy international again who finished off an acrobatic overhead kick into goal for his fourth goal in five games.
Milan missed two late chances to snatch a point with Franck Kessie hitting the ball wide while Piatek's header was cleared by Torino goalkeeper Salvatore Sirigu.
"It was a game we had under control, but we didn't have the cynicism to kill it off," said Milan coach Marco Giampaolo.
"It is clear that this defeat hits our self-esteem."