Dusan Vlahovic snatched a point for Fiorentina two minutes into injury time to frustrate Inter Milan who had led following Borja Valero’s opener after eight minutes in Tuscany.
Both Juventus and Inter Milan have 39 points from 16 games, with Antonio Conte’s side ahead on goal difference.
Ronaldo struck twice in the first half to make it five goals in four games as the reigning champions got back winning after last weekend’s first defeat of the season to Lazio.
“That’s how we have to play, with confidence,” said Ronaldo.
The Portuguese star tapped in a Paulo Dybala rebound after nine minutes at the Allianz Stadium and burst through to finish off a Gonzalo Higuain cross on 36 minutes.
Leonardo Bonucci sealed the three points just before the break when he headed in from close range.
Ignacio Pussetto pulled a goal back for 17th-placed Udinese four minutes into injury time.
“It is the first time after a Champions League match that we managed to attack the game well,” said Juventus coach Maurizio Sarri.
“We played very well for 60 minutes.”
In Florence, Valero scored off a Marcelo Brozovic cross against his former club.
But the visitors failed to kill off the game.
Lautaro Martinez had the ball in the net after 39 minutes but it was disallowed because of Romelu Lukaku’s offside position.
And Fiorentina goalkeeper Bartlomiej Dragowski did well to deny Lukaku minutes later at full stretch.
But just as it looked like Fiorentina were set to fall to a fifth consecutive defeat, 19-year-old Serb Vlahovic broke through from his own half, outpacing Milan Skriniar to rifle in from an angle.
It condemned Inter to their second consecutive stalemate after Roma last weekend, and follows their Champions League exit to Barcelona on Tuesday.
“It’s the third game where we did not get what we deserved,” said Conte.
“We weren’t good at taking our many chances.
“Maybe we’re paying for fatigue. We’ve had seven games in 21 days, with Lautaro and Lukaku playing constantly.”
The pressure remains on coach Vincenzo Montella with Fiorentina’s last win on October 30, and their next game against in-form Roma.
Roma move fourth
Roma moved up to fourth and into the Champions League places after three second-half goals sealed a 3-1 win over rock bottom SPAL.
Andrea Petagna had put SPAL ahead from the spot just before the break after Aleksandar Kolarov clumsily brought down Thiago Cionek in the box.
But Lorenzo Pellegrini pulled the hosts level eight minutes after the interval with a shot that took a deflection off Nenad Tomovic.
Diego Perotti put Roma ahead with a 66th-minute penalty before substitute Henrikh Mkhitaryan sealed victory seven minutes from time.
Roma are one point behind third-placed city rivals Lazio, who play fifth-placed Caglairi on Monday.
“Today it was important to win,” said Roma coach Paulo Fonseca.
Napoli drop to eighth — 11 points off the top four — after last season’s runners-up lost 2-1 to Parma on Saturday.
Atalanta are sixth after falling 2-1 at Bologna just days after the Champions League newcomers sealed their place in the competition’s last 16.
Rodrigo Palacio opened the scoring after 12 minutes for Bologna off a rebound after a Riccardo Orsolini effort came off the post.
Andrea Poli nodded in the second eight minutes after the break, before Ruslan Malinovskyi pulled a goal back on the hour mark.
Gian Piero Gasperini’s side are sixth on 28 points, four points off the Champions League places.
AC Milan were held to a goalless draw against Sassuolo at the San Siro as the former European giants marked their 120th anniversary in tepid style.
Theo Hernandez had a goal ruled out after half an hour following a Franck Kessie handball in the buildup, with Rafael Leao hitting the crossbar and the post.
Stefano Pioli’s side failed to make it three wins in a row and sit 10th with Sassuolo three places and five points below.
Hellas Verona battled back from three goals down with all three substitutes scoring in a 15-minute second-half spell to hold Torino 3-3.