The 20-year-old, who became the youngest semi-finalist in the tournament's history, needed just one hour and 36 minutes to overcome the 2019 Shanghai champion on Stadium Court. Jodar's victory sets up an all-Spanish final against Alejandro Davidovich Fokina on Sunday.
Jodar dictated play from the outset with aggressive baseline tennis and strong serving. He broke Medvedev's early in the first set and maintained control to close it out 6-3.
The Spaniard converted four of seven break-point opportunities overall, while the Russian managed only two from six.
In the second set Medvedev, who had looked vulnerable at times in his quarter-final against Tommy Paul, struggled to find rhythm on his serve. Jodar broke again and held firm to seal the match 6-4, finishing with six aces and a solid first-serve percentage.
The result marks the latest chapter in Jodar's breakthrough season, with the 12th seed having recovered from a set down in four consecutive matches en route to the last four, including a victory over Casper Ruud.
Medvedev, ranked sixth and a former world No. 1, was unable to match the Spaniard's intensity and consistency on the day.
Jodar will now contest his first ATP Masters 1000 final, while Davidovich Fokina advanced earlier by beating top seed Alexander Zverev in three sets. The final will be the first all-Spanish showdown in Shanghai Masters history.