Nole fought back from a set down for the third consecutive match on Saturday to beat Khachanov and reach the championship match in his hometown.
Top seed Novak Djokovic overcame a challenge by Russian Karen Khachanov and progressed into the final of the Serbia Open with a 4-6, 6-1, 6-2 victory in one hour and 59 minutes.
The 25-year-old Russian broke in the very first game of the contest and consolidated it for 2-0 lead, then went on to take the opener 6-4.
Novak clinched the second set in style, with two breaks of serve, in the fourth and sixth games, to force a decider.
The 20-time Grand Slam champion dominated the third set also, converting his chances in the first and fifth games.
“All three matches were key matches for me, to be honest,” Djokovic said. “I didn’t start well, losing the first set again. I was a break down today as I was in the first two matches of the tournament. I think as soon as the second set started I was just feeling the ball and started swinging through particularly the backhand which wasn’t working in the first set. I was serving well, dictating the play in the second and third sets, the best two sets of the season so far for me and against a really quality tennis player. Playing at home with the unbelievable support from the crowd always gives me goosebumps and motivation to play my best and fight until the end.”
Match statistics: aces (6-1), double faults (2-0), total points won (80-65).
Novak, who will face second seed Andrey Rublev (RUS, H2H 1-0) in Sunday’s title match (14:00 CET), is seeking his first trophy of the 2022 season and the third Serbian Open crown. The Serbian star is one win away from his 87th career title.
Rublev toppled Fabio Fognini (ITA, 6) 6-2, 6-2 in the second semi-final of the day.