Novak Djokovic was forced to come from behind to reach the Cincinnati Open final with a 4-6 7-6 6-2 victory over Alexandr Dolgopolov.
Despite struggling with his first serve for much of the opener, Dolgopolov looked the sharper of the two players in many of the rallies and he made a breakthrough in just the third game.
It looked like the break may have been only an early scare when Djokovic hit back to make it 3-3, but he immediately handed the advantage back to the Ukrainian in the next game.
Dologopolov refused to take a step backward in a positive approach and he confidently served out to move ahead of the world number one.
After Djokovic saved two break points in the opening game of the second set, both players appeared to have turned a corner with their serving until an exchange of breaks increased the drama to the delight of the Ohio crowd.
Djokovic had seen his opportunity fade when Dolgopolov immediately responded to break in the ninth game, and his unseeded rival then took control of the tie-break with a stunning forehand winner against the serve.
A wayward stroke from the Ukrainian allowed Djokovic to pull back to 3-3, and after moving ahead once again, Dolgopolov was pegged back for a second time when he miscued an attempted drop shot and the top seed capitalised to level the match.
Dolgopolov managed to save a break point in the first game of the decider, but with the momentum clearly on Djokovic's side, the Serbian quickly raced into a 5-1 lead.
A run of five successive games did come to an end, but it made little difference to the end result as Djokovic completed the comeback with his third match point to book a spot in Sunday's final.