Serb Djokovic, who beat Federer in the Wimbledon final for a second consecutive year last month, rallied to beat Ukrainian qualifier Alexandr Dolgopolov 4-6 7-6(5) 6-2 while the Swiss second seed beat third seed Andy Murray 6-4 7-6(6).
Djokovic, who needs a win on Sunday to become the first player to claim all nine ATP Masters titles, lost the first set but escaped a nervy second-set tiebreak in Cincinnati that took the wind out of his 66th-ranked opponent’s sails.
In the tiebreak, Djokovic was two points from defeat at 4-5 but dug deep and found a way to escape the jam, ultimately taking the set with a cross-court forehand winner.
“(Djokovic) just plays more carefully on the big points. You have to beat him and go for the risk,” said Dolgopolov.
“I really believed I could win and my game was enough to beat him. It was just the situation. You know, those few points decided everything.”
Djokovic had squandered a chance to level the match in the ninth game of the second set when he was broken to love before the players each held serve over the next three games to force the tiebreak which the Serb won to ensure a third set.
Djokovic then broke a disheartened Dolgopolov twice en route to ending the match in two hours, 20 minutes and improving his all-time record versus the Ukrainian to 5-0.
Completing the set of ATP Masters titles will be no easy feat for Djokovic with six-times Cincinnati champion Federer standing in his way.
The Swiss got off to a fast start against Murray, earning a break in the third game of the match en route to capturing the first set in 38 minutes with a forehand winner down the line.
The players rode their serves to a tiebreak in the second set, where Federer went on to convert on his second match point.
The victory sets up the latest instalment of the Federer-Djokovic rivalry, knotted at 20 wins apiece.
The match will be their fifth meeting in 2015, with Federer winning on the hard courts of Dubai and Djokovic emerging victorious at Indian Wells, Rome and Wimbledon.