Palermo wasted a two-goal lead to lose 4-2 against Lazio at Rome's Olympic Stadium, allowing Livorno to move to second after their unbeaten start continued with a 2-0 win over Ascoli.
Treviso's chances of picking up their first point of the season seemed remote as Milan midfielder Andrea Pirlo forced a diving save from keeper Adriano Zancope with a long-range effort after two minutes.
It needed a moment of individual brilliance by Brazilian Kaka to put Milan, who are five points behind the leaders Juventus, ahead a minute before the interval.
Having received the ball in his own half, the 23-year-old playmaker cut through Treviso's midfield before picking out Alberto Gilardino in the area. The Italy international was upended by Zancope and Andrei Shevchenko converted the resultant penalty.
Milan were more comfortable after the interval and Gilardino's diving header in the 73rd minute put the result beyond doubt.
A late goal by Patrick Vieira earned Juventus a 2-1 win at Parma to maintain their 100 per cent start to Serie A on Saturday.