World No 5 Li Na withstood a late comeback from Petra Kvitova to beat the fifth-seeded Czech 6-3 7-5 and set up a Stuttgart Grand Prix semi-final with American qualifier Bethanie Mattek-Sands.
The second seed from China was put under early pressure by a series of sizzling Kvitova groundstrokes, but responded by rattling off five consecutive games to snatch the first set.
World No 8 Kvitova took an early 2-0 lead in the second set before Li bounced back again, reeling off another five straight games.
The Australian Open runner-up then twice had her serve broken, as the mercurial Kvitova blasted a string of superb service returns past her opponent to level at 5-5.
A fine volley and a brilliant return from an unimaginable angle put Li 6-5 ahead and she finally went through on her third match point, when the Czech netted a backhand.
Mattek-Sands advanced with a 6-4 6-2 win over German Sabine Lisicki.
Earlier, top seed and defending champion Maria Sharapova struggled to dispose of former world No 1 Ana Ivanovic of Serbia 7-5 4-6 6-4.
The world No 2 has had to work hard in the event, saving two match points in a three-hour battle with Czech Lucie Safarova in her first match this season on clay yesterday.
"I prefer playing tough matches instead of training at home," the Russian said. "It was hard to get my body going - I need some time to warm up."
Sharapova next meets third-seeded German Angelique Kerber, who put out Kazakhstan's Yaroslava Shvedova 6-3 7-6.