The match was Nadal’s first since he prematurely ended his season in August with a foot injury.
It was also the first time the two players had met on a court since May 2016.
With Nadal’s lack of playing time, Murray was the favourite going into the match and he broke first to lead 4-2.
The British player held on for the rest of the set and won 6-3 but faced a strong comeback from Nadal in the second set.
There were longer rallies in the second set and the pair were tied for most of it.
However, Murray finally found his opportunity and broke Nadal to go 6-5 up and serve for the match.
Murray will now play world No. 5 Andrey Rublev in the final on Saturday.