Bertens, the world number 20, blasted her way past seventh seed Garcia in just 66 minutes, breaking serve four times and never surrendering a break point to move within sight of her second singles title of the year.
Bertens, 26, had taken some big scalps already this week in Madrid, defeating Maria Sharapova in the quarter-finals on Thursday, the day after knocking out world number two and Australian Open champion Caroline Wozniacki.
“I’m really happy with the way I played. I think it was maybe not great tennis, what people want to see with a lot of winners, but Caroline is a great player,” Bertens told a news conference.
“She likes when the ball comes from the hip so I was just trying to play as many different balls as I could. I think I did it pretty well.”
“She played very well, she used the high ball very well,” said Garcia, offering generous praise to Bertens.
“I couldn’t do anything about it. I tried different things, but it didn’t work. Of course, I’m frustrated. My performance today was not great. But she had a game plan and it worked well.”
Bertens will face a tough examination on Saturday against Kvitova, who reached the Madrid final for a third time by beating Pliskova, conqueror of world number one Simona Halep on Thursday.
A key moment came in the eighth game of the first set when Kvitova landed an impressive forehand to force the game to deuce and prevent Pliskova taking a 5-3 lead.
The two-time Madrid champion eventually broke her compatriot to level the first set and edged the tiebreak as Pliskova double-faulted to hand her a two-point advantage which Kvitova pounced on.
Kvitova carried that momentum into the second set and closed the match out when Pliskova could only smash a backhand beyond the baseline.