Roma, who had bravely kept their challenge going by winning their last nine games, inexplicably produced one of their worst performances of the season against the Sicilian strugglers.
Mariano Izco stunned Roma by scoring twice in a six-minute spell in the first half and, although Francesco Totti pulled one back, it was only a lull in the storm.
Gonzalo Bergessio extended Catania's lead in the 56th minute and Pablo Barrientos fired a fourth to leave Roma's title hopes in tatters.
The defeat left Roma eight points behind Juventus, who host Atalanta on Monday (1900 GMT) with only two games left to play.
Juventus have won a record 30 Serie A titles, including three in successive seasons since Antonio Conte took over as coach in 2011.
"The Scudetto is always special, especially a third in a row as that had never happened to us before," Conte told reporters earlier on Sunday. "Even legendary coaches were unable to get three consecutive titles."