The relegation-threatened Sicilian outfit ended a run of three straight draws to ease the pressure on coach Rolando Maran.
The defeat also dealt a blow to the European qualification hopes of Reja's side.
Mariano Izco opened the scoring for the home side after just one minute, but Stefano Mauri drew the Roman club level on the stroke of half-time.
Further goals from Nicolas Spolli and Gino Peruzzi ensured the home side claimed all three points.
Catania shocked their higher-placed visitors early on when Lucas Castro crossed from the right and Izco fired the ball into the top right corner.
Catania nearly extended their lead when as shot from Pablo Barrientos forced Etrit Berisha into a fine save.
Lazio's Lucas Biglia shot just wide of the Catania goal before the home side's Gonzalo Bergessio forced Berisha into another save before Lucas Castro's right foot shot was just off target.
Lazio's Antonio Candreva fired wide before Catania's Spolli headed wide from a Francesco Lodi cross.
Lazio drew level in first half injury time when Mauri headed into the top corner of the goal from a cross by Abdoulay Konko.
But Catania were back in front three minutes into the second half when a free-kick from Lodi was met by a diving header from Spolli which found the net from close range.
Five minutes later Catania wrapped up the win when Peruzzi played a one-two with Keko before scoring the home side's third goal from close range.
Berisha then denied Bergessio twice, the second chance coming after good work by Peruzzi.
Christian Ledesma crossed for Miroslav Klose, who headed just wide as Lazio tried to get back into the game.
Berisha easily kept out an shot on the turn from Bergessio before a late effort from Candreva brought a save out of Catania goalkeeper Mariano Andujar.