Ronaldo blasted in the third goal in the 89th minute to extend his record to 127 strikes in the competition to add to Gonzalo Higuain and Federico Bernardeschi’s earlier efforts.
Juventus move top of their section, level on four points with Atletico Madrid, who defeated Lokomotiv Moscow 2-0 in Russia.
The Italian champions had been held 2-2 by the Spaniards at the Wanda Metropolitano in their opener.
“We had a good match against a team who love possession and are not easy to deal with,” said Juventus coach Maurizio Sarri.
“They took a lot of energy out of us in the first half. After the break, they slowed down a little and we took control.”
Leverkusen face an uphill battle after their shock 2-1 defeat at home against Lokomotiv Moscow and are rooted to the foot of the table.
“It was a clear defeat,” said Leverkusen coach Peter Bosz. “We played well in the first half even if we didn’t have chances, and then we made the mistake which led to the first goal.
“It’s the difference between a team who has experience in the Champions League and one that is beginning its journey at this level.”
Juventus next host Lokomotiv and Leverkusen travel to Atletico on October 22.
– Higuain back –
Sarri opted for Higuain and Bernardeschi up front alongside five-time Ballon d’Or winner Ronaldo.
Leverkusen were struggling from the outset after losing captain Lars Bender in the warm-up to a thigh problem, with defender Mitchell Weiser stepping in.
The Germans showed little to threaten the hosts, with Lucas Alario shooting over on three minutes with what would be their best chance of the game.
The breakthrough came for Juventus when Leverkusen defender Jonathan Tah failed to head clear Juan Cuadrado’s long ball for Higuain, with the Argentine pouncing to drill home after 17 minutes.
The 31-year-old Higuain, back in Turin after loan spells at AC Milan and Chelsea, had a chance for a second on 38 minutes but was denied by Leverkusen goalkeeper Lukas Hradecky.
Juventus piled on the pressure after the break as Ronaldo tried unsuccessfully to pull off an overhead kick in the 55th minute.
Ronaldo then sent Higuain in behind, but although the Portuguese failed to connect with his teammate’s return pass, Bernardeschi was lurking to provide the finishing touch just after an hour.
Juventus almost had a third with Hradecky failing to control the ball and almost turning it into his own net before grappling to save on the line.
But the Finnish international did well to deny Ronaldo in front of goal after a Higuain charge down the flank.
Welsh international Aaron Ramsey was introduced in place of Bernardeschi with Dybala replacing Higuain for the closing stages.
And in the dying minutes, substitute Rodrigo Bentancur picked out Dybala who slid the ball through for Ronaldo, allowing the 34-year-old to equal Real Madrid great Raul’s record of scoring against 33 different sides in the Champions League.
“It was an important match, after the draw in Madrid we had to win to get closer to the qualification,” said Higuain.
“Now we head to Sunday, because another battle awaits us,” added the Argentine of next weekend’s Serie A clash with leaders Inter Milan.