Zlatan Ibrahimovic scored twice but Milan's perfect start to season was ended by Roma after a thrilling 3-3 San Siro draw.
Ibrahimovic put Milan ahead early on with deft finish from close range but Edin Dzeko equalised shortly afterwards with a header.
Alexis Saelemaekers edged Milan in front again with a composed finish only for Jordan Veretout to draw Roma level from the penalty spot.
Ibrahimovic netted a penalty of his own 11 minutes from time, but Milan were denied a fifth consecutive victory when Marash Kumbulla volleyed in a dramatic late equaliser.
Ibrahimovic gave Milan the lead in the second minute with an intelligent poacher's goal after he got on the end of a delicious Rafael Leao lofted pass.
However, Roma were back on level terms 10 minutes later after a goalkeeping error from Milan's Ciprian Tatarusanu on his first competitive start for the Rossoneri.
The Romanian, deputising for Gianluigi Donnarumma after he tested positive for COVID-19, came to punch Lorenzo Pellegrini's corner but completely missed the ball, which allowed Dzeko to head home.
Milan increased their advantage shortly after the interval with Leao instrumental again as he burst down the left flank and crossed for Saelemaekers who confidently fired his shot beyond Roma goalkeeper Antonio Mirante.
Roma were awarded a controversial penalty, though, when Ismael Bennacer was deemed to have brought down Pedro despite appearing to be fouled himself, and Veretout confidently converted.
Ibrahimovic thought he had secured the points when he sent Mirante the wrong way with a spot-kick, again controversially awarded, after Hakan Calhanoglu was felled by Gianluca Mancini.
Roma refused to give up, though, and gained a share of the spoils with seven minutes remaining when Kumbulla got on the end of a flick from a corner to slam the ball home.
What does it mean? Milan defence under scrutiny
With defending champions Juventus making a stuttering start to the season, Milan find themselves clear at the top of Serie A with four wins out of five.
But this performance was a defensive nightmare, leaving Pioli with plenty of work on the training ground as his side allowed Roma to take 12 shots at goal, with seven on target.
Leao outshines Zlatan
Ibrahimovic turned 39 at the start of October and was involved in everything Milan did well but was upstaged here by Portugal forward Leao – some 18 years his junior.
Marauding with intent on the left flank, Leao provided superb assists for both goals, made 17 passes with an accuracy of 82.4 per cent and was key throughout.
Tatarusanu endures tough debut
It was a difficult Milan debut for back-up goalkeeper Tatarusanu, who was at fault for two of Roma's goals with a failure to command his box.
Tatarusanu made just four saves as he let in three goals and generally appeared a bag of nerves. Donnarumma cannot come back soon enough.
Key Opta Facts
- Milan have scored at least two goals for 11 consecutive games in all competitions, equalling their own such record of 1959.
- Zlatan Ibrahimovic has scored multiple goals in three straight games. The last to do so in Serie A was Cheick Diabate in 2018.
- Edin Dzeko has scored three goals in his last two league games, one more than in his previous 11 appearances.
- Rafael Leao registered two assists in this game, as many as in all of his previous 34 Serie A appearances.
- Jordan Veretout has scored six goals in his last seven league appearances.
Both sides have home group fixtures in the Europa League on Thursday. Milan host Czech outfit Sparta Prague while Roma welcome Bulgarian side CSKA Sofia.