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 teammates' nerves by smothering another Marquinho drive in a lively opening exchange.
Abbiati proved the savior again by denying the Brazilian attacking midfielder when a slick pass found the Roma man advancing beyond the attention of Milan's backline, before he just failed to place his chance 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 seize 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 all evening 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, teammate Sulley Muntari was sent off for a bizarre altercation with the referee on the stroke of halftime.
The Ghanaian midfielder tried to prevent the referee from giving Balotelli a yellow card, restraining his arm. Instead of just a yellow for Balotelli, the referee was forced to also produce a red for Muntari.
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 stop 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 beaten Abbiati from Totti's measured chip, but Philippe Mexes got back in the nick of time to clear the goal-bound punt.
Mathieu Flamini looked to extend his recent hot-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 teammate Mexes summarised 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 in third two points clear of the Viola, although they will have have to wait till the final fixture to be absolutely assured of qualification to Europe's premier cup competition next term.