The Slovakian playmaker opened the scoring on the half-hour mark after latching onto a Juan Camilo Zuniga cross at the end of a move he had himself started, and then set up Fabio Cannavaro to smash home from close range just before half time as the home side cruised their way all three points.
The victory puts Napoli joint top of the league on points, though behind Juventus on goal difference, with Juve having a chance to pull clear again when they play Chievo on Sunday.
Catania, meanwhile, see a run of three consecutive wins brought to an end with a frustrating defeat that saw them miss a chance to go fifth - and they were left annoyed at a disallowed goal which could have got them back into the match.
The visitors came to Naples looking for only a second win at Stadio San Paolo in their club history, but they should have been full of confidence turning up on the back of three consecutive wins.
It did not look that way in the early stages, however: Napoli dominated from the start, with Goran Pandev very nearly scoring a stunning opener after just 15 seconds as he juggled the ball brilliantly three times to wrong-foot a trio of Catania defenders before volleying just high and wide.
That set the tone for Napoli to dominate, enjoying more than twice as much of the ball as their opponents in the first half - but having nothing to show for it until just after the half-hour mark, when Hamsik's audacious one-two with Zuniga out wide on the left allowed him to smash home at the far post.
With the deadlock broken Catania finally came out of their shell, and were unlucky not to get a penalty when Zuniga clearly appeared to control the ball with his arm in the box.
It was Napoli who scored next though, not through star player Edinson Cavani - who rattled the crossbar with a thundering free kick - but through veteran defender Fabio Cannavaro on his 250th start for Napoli. The Italy legend was on hand to sidefoot home Hamsik's superb cross spun low across the six-yard box two minutes before half time.
Catania appeared to have pulled one back just after the restart when Gonzalo Bergessio nodded home from a corner, but he was very harshly judged to have pulled Zuniga's shirt. Replays showed that it was clearly Napoli's Colombian defender who started the shirt pulling, but once again the home side got the benefit of the decision.
With the rain torrential and the wind blowing so hard that Gomez had to delay taking a corner because the ball refused to stay put - and indeed the advertising boards blew over behind him - conditions only made it harder for the visitors to get back into the match.
And while they tried hard - with Francesco Lodi's free kick in particular forcing a wonderful diving save from Morgan De Sanctis in the Napoli goal - they succeeded only in balancing out the possession stats to roughly 50-50 by the time the final whistle blew.