Francesco Totti marked his return from injury with a goal and then an assist for Mattia Destro to put the Giallorossi in the driving seat. Udinese got back into the game through Giampiero Pinzi, before Vasilis Torosidis restored Roma's two-goal advantage. Dusan Basta netted later on, but the home side held out.
Roma remains unbeaten at the Stadio Olimpico this season, although it is effectively battling for second place and the final automatic spot into next season's Champions League. It trails runaway league leaders Juventus by 14 points with a game in hand, but remains three points clear of third-placed Napoli.
Totti returned after a month out with a thigh injury, but Kevin Strootman was ruled out for the season after sustaining an injury to a knee ligament last weekend. Federico Balzaretti was still not ready to return and Daniele De Rossi was suspended. Mehdi Benatia faced his former club.
Udinese was buoyed by last weekend's 1-0 victory over AC Milan. The Bianconeri traveled to the capital without the suspended Bruno Fernandes and injury victim Gabriel Silva. Silvan Widmer shook off a knock to start in midfield.
Simone Scuffet was the busier of the two goalkeepers early on. The 17-year-old turned a Destro effort around the post, then smothered Benatia's shot from outside the box at the third attempt.
Roma made the breakthrough midway through the first half. Scuffet ran out to parry Gervinho's effort from 12 yards, but the rebound fell at the feet of Totti and Il Capitano buried a low shot into the bottom corner.
Udinese came right back at Roma and was denied an instant equaliser by some good goalkeeping. Emmanuel Badu used the outside of his foot to toepoke the ball from close range, forcing Morgan De Sanctis to go down and pull off a one-handed reflex save.
Roma's front three continued to cause problems for Udinese's defence. The trident combined to double the home side's lead on half an hour. Gervinho brought down Totti's high ball and fed Destro, who rounded Scuffet and slotted into an empty net.
Yet again, Udinese reacted quickly and De Sanctis pulled off another superb stop when he flew to keep out an Antonio Di Natale curler. The veteran striker went over and congratulated the custodian on his save.
Udinese's persistence was rewarded six minutes after the break. Allan dispossessed Totti in midfield and he laid the ball off for former Lazio man Pinzi to beat De Sanctis with an angled drive.
All of a sudden, Roma looked nervy and Udinese set out to capitalise. Di Natale pounced on a Radja Nainggolan mistake, only to be thwarted by an outstretched leg from De Sanctis. The Giallorossi looked to restore their two goal cushion. A flowing move of one-touch passing resulted in Scuffet getting down to save comfortably from Nainggolan.
Roma's third goal arrived in spectacular fashion on 69 minutes. Torosidis saw space open up, so the defender cut inside and let rip with a 25-yard rocket which zipped into the far bottom corner.
De Sanctis continued to frustrate Di Natale. The goalkeeper parried from the veteran, who then tried to turn provider, only to see Allan miskick and slice wide in the box.
Udinese ensured a nervy last ten minutes when it pegged Roma back again. De Sanctis punched Danilo's header from a corner right into the path of Basta, and he took advantage of the gift by volleying the rebound into the net from six yards.
Alessandro Florenzi wasted a chance to secure the points with two minutes left to play. Scuffet had already gone to ground and the substitute lifted his shot too high, with the ball finishing over the bar.
AS Roma: De Sanctis; Torosidis, Benatia, Castan, Dodó; (Romagnoli 85) Nainggolan, Taddei, Pjanic; Gervinho, Destro, (Bastos 81) Totti (Florenzi 72)
Goals: Totti 22, Destro 30, Torosidis 69
Udinese: Scuffet; Heurtaux, Danilo, Domizzi; Widmer, Pinzi, (Muriel 64) Allan, Badu, (Zielinski 85) Basta; Pereyra, Di Natale (Lopez 80)
Goals: Pinzi 51, Basta 80