Rafael Nadal will play Novak Djokovic in the Madrid Open final on Sunday after the world's top two won their semi-finals in three sets.
Nadal took his winning streak on clay to 37 matches with a 5-7 6-1 6-3 win over Roger Federer in the first semi.
And Djokovic then fought back from a set and a break down to beat Brazil's Thomaz Bellucci 4-6 6-4 6-1.
Djokovic is unbeaten in all 31 matches he has played this year, while Nadal has not lost on clay in two years.
Prior to the first semi-final there was a tribute to golfing legend Seve Ballesteros, who died on Saturday.
Nadal in particular was visibly moved by the video images of Ballesteros and after the match he said: "I'm really happy for the victory but it's a terrible day for Spain, and for the world, because we lost a great champion, probably the greatest in the history of Spain."
The home crowd could at least take some cheer from the latest victory in the career of another Spanish superstar, although neither Nadal nor Federer were at their absolute best.
With the roof on the Caja Magica stadium closed on a wet day in Madrid, the pair shared seven breaks of serve as their usual high level was interrupted by regular errors.
Federer made a poor start but hit a burst of form to recover from 4-2 down to take the first set, clinching it with a forehand winner after 19 errors in the opening 12 games.
The 29-year-old Swiss was furious moments later when Nadal broke at the start of the second following an overrule by umpire Mohamed Lahyani, and although Hawkeye told TV viewers that it was the right call, the fact that the technology is not used in clay events meant Federer continued to grumble about the incident for some minutes.
Nadal was typically unmoved by the fuss and stepped on the accelerator, seeing off three break points in the course of winning five of the next six games to level the match.
The Spaniard, 24, was an overwhelming favourite going into the final set but it was Federer who earned the first chance, only to send a regulation backhand long on break point at 1-1.
Almost inevitably, Nadal made him pay immediately by breaking for 3-1 and he went on to close out the match after seeing off one final break point for Federer in what proved to be the final game.
Asked afterwards about the line call at the start of the second set, Federer said: "If it goes my way it's obviously huge, if it goes his way it's huge. Look, at the end of the day I don't know how it was. I don't care anymore, it's in the past."
In the second semi-final, Bellucci - who upset world number four Andy Murray in the third round - looked on course for a stunning win over Djokovic.
The Serb looked tired as he slipped a set and a break down but the incredible drive that has seen him remain unbeaten since November surfaced again, and by the closing stages it was the Brazilian who was suffering physically.
"I try not to think about losing," said Djokovic afterwards. "I try to think about winning and I think that's a positive state of mind. That's why I'm playing well."
Looking ahead to the final, Nadal said: "It'll be a very, very tough match that I could lose even if I play well. He is coming here on a winning streak and that obviously gives you a confidence boost."