World number one Naomi Osaka came from behind in the final set to beat Croatian Donna Vekic and reach the Porsche Tennis Grand Prix semi-finals.
Osaka won 6-3 4-6 7-6 (7-4) in Stuttgart and will next face Estonian Anett Kontaveit, who progressed after her opponent Victoria Azarenka retired.
Azarenka had been a game away from the last four but let her advantage slip as she struggled with a shoulder issue.
Petra Kvitova will face Kiki Bertens in the other semi-final.
World number three Kvitova overcame a poor start to beat Latvia’s Anastasija Sevastova 2-6 6-2 6-3.
Dutch sixth seed Bertens progressed by beating home favourite and reigning Wimbledon champion Angelique Kerber 6-3 6-4.