Jelena Jankovic won a fierce scrap with Venus Williams 6-7, 7-5, 6-2 on Saturday to set up a Stuttgart Grand Prix final against Nadia Petrova.
Serb Jankovic, seeded second but already assured of taking over as world number one on Monday, edged a classic encounter with the sixth-seeded American in two hours 45 minutes despite being hampered by a foot problem.
Unseeded Russian Petrova's 6-4, 6-4 victory over Victoria Azarenka of Belarus in the opening semi-final was straightforward by comparison.
Petrova, the 2006 champion, caught Azarenka cold, building a 4-0 lead before her unseeded opponent fought back.
Azarenka recovered one break and had Petrova under pressure again in her next service game before two huge aces pulled the Russian out of trouble.
Petrova then took control of the second set and clinched victory in 90 minutes.
Jankovic had come through a tough match against Vera Zvonareva of Russia on Friday night and at the start of Saturday's semi-final Williams looked fresher.
The American snatched the first set 10-8 on a tiebreak and it was all Jankovic could do to hang on in the second.
She made the breakthrough in game 12 by forcing a set-point against serve.
Williams saved it before a terrible forehand into the net gave Jankovic another chance.
The Serb dashed across court to chase down a weak volley and forced a deciding set with a forehand pass that clipped the outside of the line.
Jankovic broke Williams at the start of the third set and saved a series of break points to keep the advantage.
Williams, serving at 2-5, put an approach into the net to give Jankovic two match-points and she took the second of them as the American overhit another approach.
"I needed two injections just to play so it's thanks to my doctor I'm in the final," Jankovic said in a courtside interview.