Despite an underwhelming display, the visitors took the lead through Robinho after 35 minutes and while Nicolas Spolli levelled in the second half, the Brazilian would have sealed victory for the hosts had the referee not ruled that his shot had been cleared off the line by Giovanni Marchese.
On the evidence of numerous replays it looked as if Marchese's block might have been moments too late, but the goal did not stand and Catania held on to claim a point they deserved - all the more so considering that the hosts had a goal of their own from Alejandro Gomez chalked off for a very close offside decision.
Juventus can now prune Milan's advantage at the top of the division back to two points with a victory over Napoli in Turin on Sunday evening.
Catania have had an excellent season in Serie A and were unawed by their visitors, who looked heavy-legged after their midweek Champions League clash against Barcelona.
Zlatan Ibrahimovic had the best early chance, but could not get his shot away after being played in by a ball over the top.
21 minutes in, Catania spurned an opportunity of their own, with Gonzalo Bergessio nodding over after a flowing move.
But despite the flat display, Milan took the lead when Robinho and Ibrahimovic combined, with the Swede holding the ball up and the Brazilian burying a low finish.
Catania fired a warning shot in reply, with Gomez hitting the crossbar with a dipping shot from distance, but it was in the second half that they enjoyed their best spell.
Straight after the break Gomez nodded the ball into the net from Bergessio's cross, only for the assistant referee to spot that Pablo Barrientos, who had got the tiniest of flicks on the ball as it came cross, had been coming back from a marginally offside position.
It did not dent Catania's ambition, and Spolli's goal, bundled in from just a couple of yards after 57 minutes after Nicola Legrottaglie had nodded back across the six-yard box, was just reward for their efforts.
Then came Robinho's goal that wasn't: he beat the goalkeeper and slid his finish towards the goal, only to see Marchese scramble it clear.
Milan players appealed that it had crossed the line, and with the benefit of several replays it looked very close indeed. Regardless of whether it should have stood, it is certain to ignite the debate about goal-line technology in Italy.
Milan pushed forward at the end, finally showing a little more life.
Juan Pablo Carrizo was called upon to make a couple of superb saves - first denying Philippe Mexes' header, then later athletically tipping Ibrahimovic's imaginative shot from range over the bar.
Yet Catania might have won the game had Mariano Izco's shot not been blocked in the final moments of the contest, but instead had to settle for a point which keeps them in seventh place.