Lazio were first to get off the blocks as new strike force Miroslav Klose and Djibril Cisse wasted little time in opening their Serie A accounts with a left-foot strike and header, respectively, to put the visitors 2-0 up inside 21 minutes.
But the Rossoneri's own forwards clicked soon after as Zlatan Ibrahimovic tapped in and Antonio Cassano scored with a rare header to bring the scores level before half-time.
After a players' strike had postponed the scheduled start to the season, Milan coach Massimiliano Allegri felt his side had taken a while to get up to speed.
"It was a difficult first half hour," he told Italian Sky TV. "We couldn't handle their counter attacks, gifted them too much space and we paid for it. We had no rhythm maybe because we hadn't played for a long time or perhaps because of the international games in midweek."
Allegri, whose side play Barcelona in the Champions League in midweek, felt the introduction of Mark van Bommel in the first half was key to the turnaround.
"His presence definitely allows us to play our football," he said. "The same thing happened last season. We upped our tempo and carved out enough chances to have won it. In the end I was pleased but we can definitely do better."
Lazio coach Edy Reja said the performance augured well for the season.
"I can't ask for more coming to Milan for the first game," he told Sky. "We slowed in the second half and we need to get fitter, but I'm proud of my players. We played with character."
After the first fixtures were postponed for a week because of the strike, Lazio dominated the early stages and were almost rewarded after four minutes when Cristian Ledesma saw his 30-yard screamer fly inches over the bar.
Four minutes later and the packed San Siro gasped as an audacious backheel from Ibrahimovic sent Alberto Aquilani clear on goal but the much-travelled midfielder failed to lift his effort and Albano Bizzarri was able to block the shot.
Another four minutes on though and the crowd were silenced as German striker Klose expertly brought down a Stefano Mauri pass with his right foot and in one movement thrashed the ball past Abbiati with his left.
A far more attack-minded Lazio than last season were causing problems in the Milan defence with every attack and Abbiati was forced to parry a vicious Cisse shot on 18 minutes after Alessandro Nesta and Gennaro Gattuso had collided going for the same ball in the box.
Mauri, playing on the right, was again the architect as Lazio went two ahead after 21 minutes. The Italian's intelligent cross was met 10 yards out by Cisse, stealing a march on Nesta and placing a perfect header into the corner.
An early surprise appeared to be on the cards but with Van Bommel on for the injured Gattuso, the home side began to dominate the midfield and were level within 12 minutes.
First, on 29 minutes, Cassano played a superb one-two with Aquilani before squaring for Ibrahimovic to side-foot into an empty net.
Then after a fierce Kevin-Prince Boateng shot had been turned around the post, Cassano somehow wrestled free of his
Get the best features, fun and footballing frolics straight to your inbox every week.
Thank you for signing up to Four Four Two. You will receive a verification email shortly.
There was a problem. Please refresh the page and try again.