The win is the fifth straight in league play for the Rossoneri and its moves the club to within one point of leaders Udinese and Lazio at the top of the league.
The Brazilian then doubled the advantage midway through the first half as he latched onto a through ball from Ibrahimovic and slotted his shot into the lower left corner of the net.
Things got worse for the visitors 20 minutes from time as Francesco Lodi scored an own goal while trying to keep out a shot from Robinho, with Gianluca Zambrotta capping the scoring a few minutes later when he followed up a shot from Alberto Aquilani and buried the rebound.
The loss snaps a six-game unbeaten streak for Catania and drops the club into eighth place.
Udinese 2, Siena 1
Udine, Italy - Udinese won for the third time in four games to move level with Lazio at the top of Serie A on Sunday after recording a 2-1 win at home against Siena.
Dusan Basta tallied the first goal for Udinese inside of two minutes while Antonio Di Natale netted his league-leading eighth goal of the campaign to double the lead midway through the second half.
Francesco Bolzoni pulled a goal back for the visitors 15 minutes from time, but it wasn't enough to extend Siena's unbeaten run to five games.
Lazio 1, Parma 0
Rome, Italy - Lazio joined Udinese at the top of Serie A on Sunday as a late goal from substitute Giuseppe Sculli gave the Rome side a 1-0 win over Parma.
Lazio entered the match having won four of its last five games and nearly went in front when Senad Lulic struck the crossbar.
Parma responded by almost taking a lead into halftime when Jonathan Biabiany's header crashed off the woodwork.
However the opener finally arrived in the 85th minute when Libor Kozak redirected a cross from Miroslav Klose off the crossbar, allowing Sculli to fire home the rebound.
Atalanta 1, Cagliari 0
Bergamo, Italy - A goal from German Denis in the 79th minute was the difference as Atalanta topped Cagliari 1-0 on Sunday to move up the table and into 11th place.
Atalanta nearly took the lead early in the second half when a shot from Andrea Masiello struck the crossbar, but Denis claimed all three points for his team with a right-footed shot that found the net from the middle of the penalty area.
Cagliari has now failed to win any of its last five games and slips to 10th in the table.
Lecce 1, Cesena 0
Cesena, Italy - Cesena remained winless on Sunday after losing a 1-0 contest at home to Lecce in a battle of Serie A's bottom two sides.
Daniele Arrigoni was making his debut as Cesena manager, but a goal in the 56th minute from Lecce's Juan Cuadrado provided the difference, despite the fact that the home side played up a man for the final 30 minutes of the game after Luis Muriel received two yellow cards in quick succession to earn himself an early exit.
Lecce snapped a seven-game winless streak with the win and moves five points clear of Cesena at the bottom of the table.
Chievo 1, Fiorentina 0
Verona, Italy - Chievo moved four points clear of the relegation zone on Sunday by securing a 1-0 win over Fiorentina, which remains winless away from home this season.
The lone goal arrived in the 66th minute through Luca Rigoni, who finished off a pass from Davide Madelli at close range to help his team snap a three-game losing skid.
Fiorentina is now level on 12 points with Chievo in the bottom half of the table.