Portuguese star Ronaldo had missed a penalty in the Italian Cup semi-final against AC Milan, and drew a blank in the final which Juventus lost 4-2 on penalties to Napoli.
But the 35-year-old made no mistake in Juventus’s first league game since beating Inter Milan 2-0 in Turin on March 8.
He converted a spot-kick earned by Matthijs de Ligt after 23 minutes for his 26th goal for the Turin giants in all competitions this season.
Paulo Dybala curled in the second on 36 minutes off a Federico Bernardeschi back-heel flick as Juventus, chasing a ninth consecutive Scudetto, opened up a four-point lead on second-placed Lazio.
The Romans travel north to fourth-placed Atalanta in Bergamo on Wednesday, looking to keep their bid for a first Serie A title in two decades on track.
Inter Milan, in third, are nine points adrift of Juventus, and next host Sassuolo.
AC Milan shrugged off the absence of Zlatan Ibrahimovic to sweep past Lecce 4-1 and keep their bid for European football next season alive as 10-man Fiorentina were held 1-1 by basement club Brescia.
Swedish star Ibrahimovic has yet to return from a calf injury but Milan put their exit in the Italian Cup semi-final behind them at relegation-threatened Lecce.
“It’s an important victory,” said Milan coach Stefano Pioli.
“Roma (in fifth) are far away at the moment but we have to try to make as many points as possible.
“Ibra is a fundamental player for us, without him we had to find other solutions.”
In Lecce, Samuel Castillejo opened the scoring after 26 minutes for the visitors, connecting with a Hakan Calhanoglu cross from the right to slot in his first goal this season.
Marco Mancosu pulled Lecce level from the penalty spot after 54 minutes, sparking an immediate Milan fightback with two goals in three minutes.
Lecce keeper Gabriel denied Calhanoglu with Giacomo Bonaventura on hand to finish off with Ante Rebic racing through the Lecce defence for a third — and his seventh goal this season.
Rafael Leao got his head to an Andrea Conti cross with Calhanoglu again involved in the build-up after 72 minutes.
Milan move up to seventh equal on points with Napoli, who occupy the final Europa League berth before they play this week.
In Florence, Franck Ribery returned after nearly seven months out following an ankle injury but his side settled for a third consecutive stalemate against Brescia.
Alfredo Donnarumma put Brescia ahead after 17 minutes from the penalty spot but Fiorentina captain German Pezzella responded with a diving header after half an hour.
Fiorentina had two goals disallowed and played the final 20 minutes a man down when Martin Caceres was sent off for a second yellow card.
The Tuscany club are 13th with Brescia ending their three-match losing streak.