Catania took an early lead after just five minutes when Francesco Lodi struck from a free kick to make it 1-0.
Parma began to push forward after recovering from the early shock, with Marco Parolo almost equallising for the home side.
Catania nearly doubled their lead on 31 minutes when a chance fell to Gonzalo Bergessio, though the striker could only hit the bar with his effort.
Keko then extended the away side's lead on 44 minutes with a cool finish to make it 2-0.
Amauri had a chance to get Parma back into the game on 51 minutes, but the forward couldn't find the target with his header.
Lodi had another chance on 67 minutes, but his finish was wide of the mark.
Jonathan Biabiany then set up Amauri, who finished well on 87 minutes to make it 2-1.
Nicola Legrottaglie was then shown a second yellow on 89 minutes, though Catania held on to secure the points.