Second seed Maria Sharapova came through a three-hour epic against Sam Stosur to reach the semi-finals of the Porsche Grand Prix in Stuttgart.
The world number two claimed her 10th win in 11 career meetings with the Australian but she had to do it the hard way, coming from match-point down and then claiming a hard-fought deciding set.
Both players' serves held firm throughout the first set, won by Stosur on a tie-break before Sharapova responded in kind after a second set featuring one break apiece.
Stosur held match point on Sharapova's serve at 5-3 but missed her chance and duly lost her own serve for the first time in the very next game.
A single service break in the 11th game was enough for the Russian to win a tight decider and wrap up a 6-7 (5/7) 7-6 (7/5) 7-5 victory.
She will face Petra Kvitova, her conqueror in last year's Wimbledon final, after the Czech left-hander cruised past Germany's Angelique Kerber 6-4 6-4.
Kvitova broke three times in a scrappy first set before taking the second with a solitary break.
Top seed Victoria Azarenka was also made to battle hard before downing Germany's Mona Barthel in three sets.
The Belarusian prevailed 6-4 6-7 (3/7) 7-5 in two hours 49 minutes, taking seven of a huge 22 break points en route, but will almost certainly have to improve on that conversion rate if she is to get past Agnieska Radwanska to reach the final.
Polish fourth seed Radwanska came from a set down to beat China's Li Na 3-6 6-2 6-3 in exactly two hours.
The semi-final line-up features the world's top four - the first time that has happened at a WTA event since Wimbledon in 2009.