Youssouf Hadji gave the visitors a deserved lead in the 18th minute and Udinese were fortunate not to fall further behind before Antonio Di Natale grabbed a 39th-minute leveller.
Rennes continued to pose the greater threat, missing numerous chances to restore their advantage before the home side finally warmed up to find a winner in the 83rd minute through Pablo Armero.
Rennes started brightly, taking advantage of an apparent rustiness in the home side, who have played only one league game so far this season compared to Rennes' five.
Hadji put the visitors ahead in the 18th minute when he used his pace to shrug off Danilo and shoot through the legs of Udinese goalkeeper Samir Handanovic and inside the near post.
The goal woke the home side up and Di Natale searched for the far corner with a shot in the 21st minute, but he did not get enough curl on his effort, which went a few yards wide.
Di Natale got a bit closer in the 33rd minute after exchanging passes with Mauricio Isla and trying to lob the Rennes goalkeeper, but again missing the left-hand upright by a yard.
Those efforts proved to be just sighters for the Italian forward, who found the bottom corner in the 39th minute to bring Udinese level after beating the offside trap.
The equaliser was a little harsh on Rennes, who had gone close with efforts from Jires Kembo-Ekoko and Hadji prior to Di Natale's strike, and it was Hadji who came close again in the 54th minute with a shot against the post.
The French team continued to push in search of a second and Razak Boukari went close twice in the space of 10 second half minutes before the home side suddenly found some reserves of energy going into the final 15 minutes.
Maurizio Domizzi's header was cleared off the line by Victor Montano, who repeated the feat to deny Thierry Doubai seconds later.
But there was nothing the Rennes defence could do to prevent Armero from grabbing a winner as he raced into the area onto Kwadwo Asamoah's pass and sent his shot in off the far post.