Antonio Di Natale scored the only goal of the game midway through the second half but the hosts had goalkeeper Simone Scuffet to thank for preserving the points.
The win takes Udinese onto 38 points, which should be enough to secure their place in Serie A again next season, but Catania remain rooted to the foot of the table, more than two wins away from safety and with only seven games remaining.
Scuffet's stock has been rising this season with some calls for the 17-year-old to be considered for the Italy squad at the World Cup.
He underlined precisely why he has been keeping the experienced Zeljko Brkic on the bench with a fine save to deny Jaroslav Plasil in the 10th minute.
He made another good save to deny Plasil again five minutes later, although he had Allan to thank for clearing Gonzalo Bergessio's subsequent shot off the line.
Di Natale missed Udinese's first chance of the game in the 38th minute when his usual composure in front of goal eluded him with only Mariano Andujar to beat.
Minutes later, Nico Lopez missed the target from a promising position as Catania gave as good as they got.
Francesco Lodi was next to bring an excellent save out of Scuffet before Udinese took the lead in the 68th minute.
Di Natale made no mistake with a diving header from close range, meeting Roberto Pereyra's volleyed cross to perfection.
Having taken the lead, Udinese opted to preserve it, succeeding thanks in a big way to Scuffet, who punched Fabian Monzon's distance shot away before denying Lodi.
The young goalkeeper then turned Bergessio's shot over the crossbar before denying Pablo Barrientos with the last chance of the game.