Ronaldo slotted his 10th goal on Saturday in 14 league games from the spot after 79 minutes, to add to Rodrigo Bentancur's opener after half an hour in Tuscany with captain Giorgio Chiellini volleying after 69 minutes.
The Portuguese star was substituted just afterwards for the first time this season after receiving a yellow card spending the last 10 minutes on the bench.
Massimiliano Allegri's side have 40 points from 14 games with second-place Napoli on 29 points before they host Atalanta on Monday.
It was Juventus' fifth consecutive win in the championship and 13th in 14 games, as they have won all their away games.
"When you have such talented players in attack, they don't need too many instructions and it's important not to limit them," said Allegri.
Stefano Pioli's team has not won in the league for more than two months, the last time on September 30.
Juventus threatened in the opening minute with Marco Benassi sending just wide.
Fiorentina fought back but defender Chiellini doubled the visitors account with a penalty after Edmilson Fernandes's handball in the area.
Empoli dominated the second half with the hosts down a man for most of the second half after Thiago Cionek was shown a straight red card for bringing down Antonino La Gumina.
(This story has not been edited by Business Standard staff and is auto-generated from a syndicated feed.)