World number five Victoria Azarenka brushed aside unseeded German Julia Goerges 6-4 6-2 to secure her place in the Madrid Open final.
Belarusian Azarenka powered past Goerges with a single break of serve in the first set and two in the second.
The victory, played out under a closed roof at the Magic Box stadium because of torrential rain, sets up a meeting with Petra Kvitova in Sunday's final.
Czech Kvitova beat Li Na 6-3 6-1 of China in Saturday's second semi-final.
Thie first semi-final saw two in-form players go head to head, with Goerges coming off the back of victory in Stuttgart last week and having beaten world number one Caroline Wozniacki twice in quick succession.
Azarenka had been a set up in the second round in Stuttgart before being forced to withdraw with a shoulder injury.
"I have to be the one dominating the game and not her because she has really big shots and when she goes for it it's tough to see where she's going and it comes really fast," said Azarenka, who is trying to win her third title in four tournaments.
"The most important thing was for me to take time away from her."
Goerges, ranked 27th, admitted: "Even though my battery was empty I still had chances to take the first set. That was important for me to see.
"Probably on Monday I will be in the top 20 for the first time and I want to keep my ranking and stay there for more than one week."
Kvitova, who will break into the top 10 for the first time on Monday, will attempt to add to this year's titles in Brisbane and Paris on Sunday.
"It's good being in the top 10 but it's only a number. I still want to be better."