World number one Justin Henin will play unseeded Alona Bondarenko in the final of the J&S Cup in Warsaw.
Henin won even though she was not at her best
Belgian Henin was made to work for a semi-final win over Jelena Jankovic but came through with a 7-5 2-6 6-4 victory in two hours and 33 minutes.
Bondarenko overcame Russian third Svetlana Kuznetsova 6-2 7-6 (7-4).
"I surprised myself," said Bondarenko. "I just tried to play my game and concentrate on every point and not think of the last point or her game."
The Ukrainian's aggressive game was too much for Kuznetsova and Bondarenko broke her rival in the first game of the match and again to go 5-2 up as she wrapped up the set.
I was expecting a tough match because she gave me a lot of trouble in the past
She served for the match at 5-4 up in the second set but Kuznetsova managed to level at 6-6 to force the tie-break before a winning forehand completed Bondarenko's win.
"The first rule of tennis is you've got to play against your opponent and I was playing against myself so it was pretty tough out there," said Kuznetsova.
"I think I almost turned it around in the second set. I tried but it seemed to be so hard."
Henin won the first set easily but Jankovic took advantage of Henin's fragile serve to level, only for the top seed to win a tense deciding set.
Henin will now play either Svetlana Kuznetsova of Alona Bondarenko who play in the other semi-final.
"I was expecting a tough match because she gave me a lot of trouble in the past," said Henin.
"I started the match pretty well, I was very aggressive and she made a couple of mistakes, but tactically it was pretty perfect what I was doing.
"Then I lost my intensity but finally I could finish the first set - not the way I wanted, but I won it.
"I didn't play well at all in the second set. Then in the third set it was a good fight."