Federer, a seven-time champion here, will be bidding to increase his tournament leading total, while Djokovic is keen to win the only Masters 1000 tournament missing from his trophy collection.
Second seed Federer was leading 7-6 (7/3), 1-1 when David Goffin retired with an injury from their semi-final match after 62 minutes on Saturday.
The Belgian needed treatment for a shoulder problem after losing the opening set.
Djokovic beat 2016 winner Marin Cilic 6-4, 3-6, 6-3 to earn his place.
"I realised that he was not serving very big," Federer said. "But it was only after he was treated that I knew something might be wrong.
"I could see that he was unhappy, but I thought he was going to play on."
The Swiss was not distressed to get a quick win.
"I'm gonna recover for tomorrow. This match was erratic at the start with hardly any rallies.
"But it got better towards the end, I'm glad my serve has worked well all week.
"I'm happy today was fairly easy."
Djokovic leads a rivalry, which dates to 2006, by a thin 23-22 margin with the Serb winning three of their last four meetings.
Federer won their only previous final here in 2015 in straight sets.
"That's not how I wanted to win, but I'll take it," the Swiss said. "I've now got a difficult final against a tough opponent."
Djokovic has lost all five of his Cincinnati finals. "Hopefully I can get it done this time," he said.
Djokovic had to work for more than two and a half hours to overcome Cilic, the 2016 champion in the combined WTA and ATP event.
Djokovic only secured his defeat of the Croatian late in the final set, breaking for 5-3 and finishing off the hard-fought victory in the next game.
"It's tough, I'm very pleased to reach the final once more here," Djokovic said.
"It's been a difficult week with rain delays and all that was happening. I've been down in my last three matches but I've come back."
- Halep eyes 'big chance' -
On the women's side, world number one Simona Halep is hoping it will be third time lucky in Cincinnati after booking her finals berth with a 6-3, 6-4 victory over Aryna Sabalenka.
The Romanian lost a title bid in Cincinnati in 2015 against Serena Williams and came up short a year ago to Garbine Muguruza.
On Sunday she'll try again against Dutch outsider Kiki Bertens, who will be playing her third final of the season after wearing down a tiring Petra Kvitova 3-6, 6-4, 6-2.
"If I fight like I've done here, I will have a big chance," Halep said. "It will be a challenge for me to play another final here and try to win it."
World number 17 Bertens, who played and won two matches on Friday after rain interruptions this week, looked fitter that two-time Wimbledon winner Kvitova in hot, humid conditions.
"I'm feeling great, I'm so happy to win," she said after advancing on her first match point as Kvitova slammed a forehand into the net. "It was a tough match, but I'm so glad to be in the final."
Sabalenka, the 20-year-old number 34 who is still seeking a first career title, dropped the opening set on back-to-back double-faults.
Halep took advantage of the momentum with a break for 3-1 in the second set, only to immediately drop her serve.
Halep broke in the final game to move through as Sabalenka volleyed long on a second match point after 76 minutes.