Paulo Dybala opened the scoring for the Bianconeri, before Ronaldo found the net on the stroke of halftime after Gianluca Caprari, who was sent off for a second bookable offence late on, had equalised for the hosts.
Juve's efforts to get forward were a little stunted in the early going, with Maurizio Sarri's players struggling to carry out his stylish, possession-based philosophy. The away side's best outlet proved to be left-back Alex Sandro, with one teasing cross from the Brazilian finding Ronaldo, but the latter couldn't direct his header.
Sandro's next delivery bore fruit for the Bianconeri when Dybala finished neatly from inside the box.
Dybala, who now has seven goals to his credit in all competitions this season, has responded well to Sarri's arrival this summer. The Argentina international is benefiting from playing more like a classic No. 10, according to ESPN's Matteo Bonetti:
Sampdoria might have buckled, but missed chances from Gonzalo Higuain and Sandro gave the hosts hope of salvaging something. Hope looked like becoming reality when Caprari converted amid a melee in the area.
Building on the momentum provided by Caprari's goal proved difficult, though, and Juve answered decisively seconds before the break. Once again it was Sandro who made the difference, teasing another expert cross onto the head of Ronaldo.
In the process, the 34-year-old continued a prolific recent run:
The second half saw Juve continue to struggle for consistency in their play. Those struggles prompted Sarri to bring Aaron Ramsey off the bench, with the former Arsenal playmaker replacing Higuain, while Dybala moved further forward alongside Ronaldo.
Ramsey soon went close, but he dragged his effort wide as the match entered its final 15 minutes. Sampdoria's response was a narrow miss from creative forward Gaston Ramirez.
Jeison Murillo blazed over late on for the hosts, who were reduced to 10 men when Caprari was shown a second yellow card after bringing down Merih Demiral.
Ronaldo and Juve had ultimately done just enough to claim all three points and seize control of the title race.
Juve's next game is the Supercoppa Italiana final against Lazio in Saudi Arabia on Sunday. Meanwhile, Sampdoria won't return to league action until Monday, January 6 for an away game against AC Milan.