Defending champion Andy Murray will face 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.
Murray, who sent down eight aces and saved 11 of 13 break points, said he was "going back in the right direction again" after losing early in Indian Wells and Miami in March.
"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 a second time.
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.
"I think in the first set he played better than me. I think in the second it was a different story," said Nadal.
"I played more aggressive, I increased the intensity and rhythm of the game and had more opportunities than him in the second."
Dominant Djokovic powers to another win
Djokovic moved closer to his second Madrid crown and his 14th successive victory over other top 10 players.
The Serb took the only break point on offer in a tight opening set and looked to have ended Nishikori's resistance when he won against the serve again in the fifth game of the second.
Djokovic was on course for a comfortable win, but he momentarily lost his concentration while serving for the match at 5-4 and paid the penalty.
He mistimed a simple overhead while up three match points and then served a double fault on the way to losing his first service game of the tournament.
Nishikori had shown his battling qualities but ran out of steam in the tie-break and Djokovic needed just one of his two match points to seal victory.
On the prospect of only his fourth meeting with Murray on clay, Djokovic told Sky Sports: "Andy has improved tremendously on clay and has proved he is definitely one of the best in the world on this surface.
"The rivalry continues and we've had so many good finals. I look forward to another one."
We've got a new BBC Sport newsletter coming soon - to receive it from the start, sign up here.