Crowd trouble marred what might have been an entertaining spectacle, leading to play being suspended in the second-half
A win would have mathematically assured the Rossoneri of Champions League football next season as Massimiliano Allegri welcomed captain Massimo Ambrosini back to the fold in place of the injured Riccardo Montolivo, while Erik Lamela, Francesco Totti and Pablo Osvaldo started in attack for the visitors.
Marquinho showed they wouldn't be sitting back with a shot down Cristian Abbiati's throat in the third minute. Giallorossi icon Francesco Totti drove a free-kick straight into the Milan wall, before Abbiati calmed team-mates' nerves by smothering another drive from the Brazilian in a lively opening exchange.
Abbiati proved the saviour again by denying the attacking midfielder when a slick pass found the Roma man advancing beyond the attention of Milan's back line, before he just failed to place his shot beyond the advancing custodian's outstretched palms.
The hosts finally succeeded in breaking out of their own half and Sulley Muntari fired over in the 25th minute for his side's first significant effort on Roma's goal. Kevin Prince-Boateng squandered a golden opportunity to take the lead for Milan at point-blank range, before a lightning counterattack culminating in a brilliantly-struck Totti shot forced Abbiati into action again.
Balotelli had struggled to breach the Roma rearguard but then struck a fierce free-kick around the wall to force Bogdan Lobont to get down and punch away. Racist chants by the capital fans managed to rile the enigmatic striker sufficiently however, and just as he received a yellow card for a late tackle, Muntari was sent off for a bizarre altercation with the referee on the brink of half-time.
Play was suspended briefly following the restart after racial abuse threatened to get out of hand, but once it resumed Marquinho continued his personal duel with Abbiati, looping his header into the 35-year-old's hands from Totti's cross. Osvaldo then fired wide after showing good strength to hold off a couple of challenges.
Simone Perrotta's crude block on Balotelli allowed the Italy international to pick himself up and rifle in another free-kick that Lobont again proved equal to. In end-to end action, Marquinho thought he had finally gotten the better of Abbiati from Totti's measured chip, but Philippe Mexes got back in the nick of time to clear the goal-bound effort.
Mathieu Flamini looked to extend his recent scoring streak when good work in Lobont's area led to a shot which the Romanian parried. As exhaustion set in, though, play became stranded in no man's land, as missed opportunities by Mexes and Lamela alongside wayward passing typified the remainder of the second period.
Totti's red card in stoppage time for an elbow on former team-mate Mexes summed up the foul-tempered air about the game, before the referee called time on proceedings.
The stalemate heaps renewed pressure on Milan's Champions League quest, thanks in no small part due to Fiorentina's 1-0 win against Palermo earlier on Sunday.
Allegri's men remain two points clear in third of the Viola, although they will have have to wait till the final fixture to be absolutely assured of qualification to Europe's top competition next term.