Defending champion Andy Murray will battle world number one Novak Djokovic in the Madrid Open final on Sunday.
British number one Murray beat nine-time French Open champion Rafael Nadal 7-5 6-4 in the first semi-final.
Djokovic then racked up a seventh victory in a row over Japan’s Kei Nishikori, going through 6-3 7-6 (7-4).
Murray is looking to hold on to his world number two ranking, which he will lose to Roger Federer unless he retains his title in Madrid.
“I think it’s big – it’s not easy. Not loads of players have won against Rafa on clay throughout his career,” he said.
“To beat him in Spain on a clay court is obviously a big challenge. It’s a big step for me from where I was four or five weeks ago.”
Murray established an early lead in the opening set of the semi-final, earning three break points in Nadal’s second service game and holding his composure to break the Spaniard.
The momentum appeared to swing Nadal’s way when he responded by taking Murray’s serve, but it was the Scot who took the first set with a winning forehand that broke the home favourite for the second time.
World number five Nadal, 29, was looking for a third successive tournament victory following wins in Monte Carlo and Barcelona last month.
But Murray followed his only double fault with an ace at 2-2 to hold in the second set before immediately breaking Nadal.
Nadal repelled a first match point with a break of his own, but Murray did not waste a second opportunity to repeat his victory over the same opponent 12 months ago.
The Spaniard believed he “was a little bit unlucky” in the second set but acknowledged that Murray “adapted better than me” to the cool, cloudy conditions, which meant the ball did not bounce as high as he would have liked.