A first half Robinho strike was cancelled out by an equalizer by Nicolas Spolli as the hosts claimed a deserved point, and denied the Rossoneri a chance to open up a seven point gap at the top of Serie A.
There were flashes of inspiration in attack from either team, and Zlatan Ibrahimovic saw a shot saved by the legs of Carrizo, before a great cross by Marco Motta was met by a Bergessio header that skimmed the crossbar.
As the first half wore on the tempo of the game died down as both sides appeared to be playing slightly within themselves. However, out of nothing, Milan found its way to an opener after a superb piece of play from Ibrahimovic.
A series of crisp passes saw the Swede receive the ball to feet with his back to goal. Showing incredible strength, he held off Nicola Legrottaglie, turned, and slipped in Robinho, who fired home with aplomb from close range.
Catania nearly drew level moments after the restart, after a loose ball in the box was attacked with vigor by Alejandro Gomez, who rattled the crossbar with a ferocious effort.
Gomez thought he had equalized again barely a minute into the second half, after turning in a flick by Bergessio. The goal was chalked off for offside, despite replays suggesting that the Argentine may have done just enough to keep himself onside.
Catania would not be denied a third time though, and deservedly drew level just before the hour mark. Milan failed to deal with a corner, giving Legrottaglie the opportunity he needed to knock down the ball to Spolli, who stroked home.
Robinho came within inches of putting Milan back in front in the 64th minute with a shot that was barely cleared off the goal line. The Brazilian sprinted clear, rounded Carrizo and sidefooted towards goal, but Govanni Marchese covered well and did just enough to prevent the whole of the ball from crossing the line.
With 10 minutes to go, Ibrahimovic again displayed great control to take a crossfield ball in his stride, but he could only poke his finish the wrong side of the post. The Swede went even closer on the stroke of injury time, but his curled effort from just inside the box was tipped over by Carizzo.
The game ended in dramatic fashion, as Carrizo once again denied Ibrahimovic, before Mexes saw a goal-bound header thwarted, with Kevin Prince Boateng putting the rebound wide.
With the last shot of the game, Catania nearly snatched the points, but Mariano Izco’s shot was blocked by Luca Antonini as both sides had to settle for a point.
Milan opens up a five point gap at the top of Seria A, but second place Juventus can reduce the deficit with its match against Napoli on Sunday. Catania meanwhile stays in seventh place with 43 points, and remain in the hunt for a European berth.