Djokovic's 20-match win streak ends with Medvedev defeat
Medvedev came through 6-4, 6-4 and will face Russian compatriot Andrey Rublev, the defending champion, in Saturday's final.
World number one Djokovic had been undefeated since claiming the season-ending ATP Finals in November.
He then went on to clinch the Adelaide title and a 10th Australian Open for a record-equalling 22nd Grand Slam crown.
However, Medvedev is also on a hot streak and arrived in the Gulf with titles in Rotterdam and Doha.
The world number seven has now racked up 13 successive wins after claiming just his fifth victory in 14 meetings against Djokovic.
The Serbian star had captured their last four meetings since the Russian ended his bid for a rare calendar Grand Slam at the 2021 US Open final.
"When you play against Novak you just have to play your best," Medvedev said.
"Kind of hope he doesn't play his best on the day because when he plays his best, well he has 22 Grand Slams, so even if you play your best, it is going to be tough, not sure you win."
The former world number one added: "I managed to play a higher level than him today. In the second set I didn't face one break point, but there were so many 30/30 games. I managed to stay composed and I am happy to be in the final tomorrow."
On Friday, the 27-year-old Medvedev fired eight aces in his 27 winners.
Djokovic committed 14 unforced errors, twice as many as his opponent in the 95-minute semi-final.
The top seed had been chasing his sixth title in Dubai, having lifted the trophy in 2009, 2010, 2011, 2013 and 2020.
Earlier, Rublev defeated Germany's Alexander Zverev for the first time in six meetings with a 6-3, 7-6 (11/9) victory in his semi-final.
Medvedev will be aiming to clinch his 18th tour-level crown and 17th on hard courts in Saturday's final.