The 39-year-old, who had not featured since sustaining a knee injury against Juventus in May, tapped in Milan’s second after 67 minutes, seven minutes after he came off the bench.
It capped an impressive performance by Stefano Pioli’s side, who went in front through a Rafael Leao strike just ahead of the break, shortly before Franck Kessie’s penalty struck the bar.
The result put Rossoneri top of the table with nine points, ahead of Napoli on goal difference, while Lazio are sixth with six points after three games.
Both sides had started the season with back-to-back wins but the hosts were soon on top as Alessio Romagnoli drew a save from Pepe Reina and Fikayo Tomori headed over in the opening five minutes.
A strong first-half Milan performance was eventually rewarded when Leao drove into the Lazio half, exchanged passes with Ante Rebic and found the bottom corner with a calm finish after 45 minutes.
It could have got even better for the hosts when Ciro Immobile kicked Kessie’s foot and conceded a penalty, but the Ivorian midfielder struck the bar from the spot deep in first-half stoppage time.
The home fans roared with approval when Ibrahimovic stepped onto the pitch for the first time since May and the Swede quickly made his mark when Rebic’s cross put the ball on a plate for him to score.
Tensions boiled over at the full-time whistle as opposing players and staff came together on the touchline, leading to a red card for Lazio coach Maurizio Sarri.