Djokovic has a 23-22 head-to-head edge but Federer has won all three of their Cincinnati final meetings.
Novak Djokovic overcame a battling Marin Cilic 6-4, 3-6, 6-3 to reach his sixth Cincinnati Masters final on Saturday while Roger Federer enjoyed a less-taxing route to the title match after his semi-final opponent David Goffin retired with a shoulder injury.
Federer had taken the first set 7-6(3) before Goffin took a short break for treatment from his trainer.
It was 1-1 in the second when Goffin called it a night.
Federer, seven-for-seven in Cincinnati finals, will play in his 150th final when he meets Djokovic on Sunday.
Djokovic has a 23-22 head-to-head edge but Federer has won all three of their Cincinnati final meetings.
Federer said he had not known for most of his semi-final that his Belgian opponent had been carrying an injury.
"I did realise he wasn't serving very big," the Swiss told ESPN.
"I wasn't sure if it was a tactic to get a higher first serve percentage."
Federer was happy with the short night's work after playing until after midnight in his quarter-final against Stan Wawrinka.
"I got to bed at 3.30 in the morning," he said. "I'm tired. I'm going to recover for tomorrow and hopefully be in better shape.
Federer said there was a lot on the line in the final.
"This is a big match. I think we're all a bit mentally and maybe physically tired but I'm looking forward to this final. There's also a lot at stake for me. I'm going for my 99th title."
Earlier, Djokovic, who has lost all five of his previous Cincinnati finals, was not at his best in a match that stretched for two hours and 32 minutes against Cilic.
The Serb came through on the big points.
"It's been a rollercoaster week with matches, interruptions, and rain delays and everything," Djokovic said.
"I managed to win the last three matches in the third set. Very few points decided a winner and I just managed to pull through."
After dropping the second set, Djokovic broke to go 3-1 up in the decider before complaining to the chair umpire about music that was audible from outside centre court.
It seemed to break Djokovic's concentration as he immediately went down 0-40 on serve before digging his way back to deuce, only to lose the game with a weak second serve into the net.
However, Djokovic broke back in the eighth game before serving out clinically to secure victory.
"I didn't like that music in the first few games of the third set," he said, adding that he planned to watch the Federer-Goffin semi-final on television.
"Of course, I'll watch, from my bed or bath," he said.
Halep to take on Bertens in final
World number one Simona Halep moved into position to claim her second consecutive tournament victory after beating Belarusian Aryna Sabalenka 6-3, 6-4 in the Cincinnati Masters semi-finals on Saturday.
French Open champion Halep, who won last week's Rogers Cup in Montreal, will face Kiki Bertens in Sunday's final after the Dutch player rallied past Czech Petra Kvitova 3-6, 6-4, 6-2.
The 20-year-old Sabalenka had taken down three top 20 players on her way to the semi-finals but struggled to keep pace with Halep, who collected her 450th career win.
After Halep broke at 3-2 in the first set, the Romanian blunted Sabalenka’s firepower and broke once more to take it.
The second set was more intense as Sabalenka pulled level at 4-4 before Halep took the next game.
A handful of errors by Sabalenka gave Halep her first match point but Sabalenka fought back with an ace into the corner.
Sabalenka had an easy volley at the net on the next point but with the court wide open she sent the ball wide.
Halep would not need another chance, closing out the match on the next point.
The final will be the sixth of the year for Halep, who also made the 2015 and 2017 Cincinnati finals.
Earlier on Saturday, Bertens blasted 10 aces against world number six Kvitova to claim her seventh consecutive win over a top 10 opponent.
It was also her second victory over Kvitova in nine days after beating the Czech in the third round of the Rogers Cup.
"It was a really tough one, but I'm so happy to be in the finals here," Bertens said.
"We've put a lot of work in to get more fit, and play more aggressive on the hard courts, and it's working out."
Bertens, world number 17, lost the last five games of the first set but rebounded to take the second in which there were seven breaks of serve.
The Dutch number one did not face a break point in the final set and dropped just three points on serve.
Kvitova had 48 unforced errors in the match, including eight double faults, and lost serve seven times in her third marathon three-setter in the Cincinnati sun.