| Last updated
Juve fell behind in the 10th minute when Udinese wing-back Nahuel Molina latched on to a quickly taken free-kick to fire home for the hosts.
But Rodrigo De Paul stuck out an arm to block a Ronaldo free-kick with seven minutes remaining and the Portuguese ace converted the resulting penalty.
Ronaldo then headed in an 89th-minute winner from close range to take his tally for the season to a league-high 27 goals in 30 appearances.
The victory saw Juve climb into third spot on 69 points, level with Atalanta in second and AC Milan in fourth, but two points ahead of fifth-placed Napoli.
However, Ronaldo's late brace didn't disguise another poor performance from Andrea Pirlo's side.
"If we are satisfied with these 10 minutes, it means that we have not understood anything," Juve defender Leonardo Bonucci told Sky Italia afterwards.
"We can't change gear and keep it up for the whole game, that is the hardest thing to understand.
"Matches are decided by episodes. After this many games you need to pay attention to the details. We have dropped points too many times because of the details."
Inter Milan won their first title in 11 years after second-placed Atalanta drew with Sassuolo.
The Milan giants are 13 points clear after Saturday's win at Crotone with four games to go.
It's Inter's first Scudetto since Jose Mourinho won both Serie A and the Champions League in 2010.
"This is one of the most important successes of my career," Antonio Conte said.
Chosen for YouChosen for You
Most Read StoriesMost Read