The Russian denied Nadal a shot at the biggest title that he is yet to win, defeating him 3-6 7-6 (7-4) 6-3 to reach the final for the first time.
Victory maintained his record of not having lost a match this week and, coupled with his victory at the Paris Masters earlier this month, he is now on a nine-match winning streak.
Nadal served for the match at 5-4 in the second set having been 4-1 down but could not take his opportunities.
Despite making just 42 per cent of his first serves in the opening set, Nadal became the first player to take a set off Medvedev in London this week.
After making his first 16 first serves, a loss of concentration from Medvedev handed Nadal the opportunity he was craving in the eighth game. The 20-time Grand Slam champion probed and then pounced before serving it out in 47 minutes.
The signs looked ominous for the Russian with Nadal having won his last 71 matches where he won the first set since losing to Nick Kyrgios in Acapulco in February 2019. The Spaniard was also an impressive 24-0 in 2020.
But Medvedev, who came into London having claimed the Paris Masters title, hit the reset button to hit back immediately.
He opened up a comfortable 4-1 lead and even had a break point chance to make it 5-1, but Nadal showed his immense fighting qualities to drag it back to 4-4.