Third seed Aslan Karatsev clinched the biggest win of his career against top seed and two-time Serbia Open champion Novak Djokovic.
The Russian edged the world no.1 in the outstanding three setter 7-5, 4-6, 6-4 on Saturday to reach the final at the ATP 250 clay-court event in Belgrade.
The match lasted three hours and 25 minutes.
Karatsev saved 23 of the 28 break points he faced against the Serbian star.
Novak made an early break for 3-0 lead, but the Russian responded strong and claimed the opening set 7-5 in 69 minutes.
The 18-time Grand Slam titlist fell 2-4 behind in the second set, but dug deep to come back and take the match into the decider.
Karatsev claimed the crucial break at 4-3 in the third set and served it out three games later.
“I am not satisfied with my game, but I am with the way I fought,” said Novak. “He played phenomenally and bravely on most of my chances, and it paid off.”
The two players are now tied 1-1 in their ATP H2H.