For the second day in a row Maria Sharapova required three sets to claim victory at the Porsche Grand Prix.
The top seed needed more than three hours to beat Lucie Safarova of the Czech Republic in the last 16 and Ana Ivanovic also proved to be a formidable opponent in the quarter-finals in Stuttgart on Friday.
The Russian eventually won 7-5 4-6 6-4 in over two hours to set up a last-four encounter against Angelique Kerber who beat Yaroslava Shvedova.
Defending champion Sharapova started well enough against former world number one Ivanovic as she broke in the opening match of the game, but her Serb opponent levelled matters again at two each.
However, the world number two got the decisive break to go 6-5 up and then she served out the opening set. Ivanovic made sure she was no pushover as Sharapova struggled to break her serve in the second set. In fact it was the Serb who got one against the serve as she broke at 5-4 to make it one set apiece.
The final set proved to be a disaster for both players when it came to their own serve, but Ivanovic was the one who was knocked out as she was broken four times compared to Sharapova's three.
Sharapova will need to step up her service game if she is to get past third seed Kerber after the German saw off Shvedova 6-3 7-6 (7-2).
Kerber raced into a 4-1 lead in the first set before Shvedova broke back to reduce the deficit to 4-3 only to lose her serve the next game.
It was a similar story in the second set as Kerber led 3-1, but Shvedova levelled it at 3-3 and took the match to a tie-breaker, which the German won comfortably.
Sabine Lisicki will take on American qualifier Bethanie Mattek-Sands for a place in the other semi-final with the winner going on to face either Petra Kvitova or second seed Li Na.