The third-seeded Medvedev will face defending champion Andrey Rublev in an all-Russian final at the hard-court tournament.
Medvedev, the former world No. 1, picked up trophies in Rotterdam and Doha before coming to Dubai and beating Djokovic to extend his winning streak to 13 matches, the second longest of his career.
Djokovic suffered his first loss since the Paris Masters final in November.
On Friday, Medvedev broke Djokovic twice in the first set and again to open the second, eventually closing it out on his first match point.
Medvedev hadn’t beaten Djokovic since the 2021 US Open final for his first and only major title. That win denied Djokovic the first calendar-year Grand Slam in men’s singles since 1969.
Djokovic then won their next four meetings.
But Medvedev improved to 5-3 against Djokovic when the Serbian player is ranked first.
Earlier, Rublev advanced by beating Alexander Zverev 6-3, 7-6 (9) in the other semifinal. Rublev needed six match points to finally put away Zverev for his first tour-level win over the German player.
Rublev had lost all five previous matches against his longtime friend, who reached his first semifinal since the French Open in June.
The sixth-ranked Rublev saved a set point in the second-set tiebreaker.
“Today, when I was going on court, I was thinking I have nothing to lose. He always beat me, so why I need to be tight,” Rublev said.
Last year, Rublev beat Jiri Vesely for the title.
The Associated Press contributed to this report.