Petra Kvitova came through a see-saw battle with Ashleigh Barty to progress to the final of the Qatar Open, where she will face Aryna Sabalenka.
World number one Barty had survived a three-set clash with Garbine Muguruza to reach the last four in Doha, but two-time Wimbledon champion Kvitova proved too strong on Friday.
Barty appeared to have the momentum after levelling the match by taking the second set in comfortable fashion.
However, an engrossing third went the way of Kvitova, even if was far from straightforward.
MORE: Novak Djokovic battles past Gael Monfils to set up Stefanos Tsitsipas final in Dubai
A sliced Barty backhand into the net gave Kvitova a break in the fifth game of the decider, only for the Czech to surrender it straight back when she fired wide off the same wing.
Yet a blistering crosscourt backhand return earned Kvitova the advantage again and a place in the final was secured when Barty looped a forehand wide to seal a 6-4 2-6 6-4 win for the 2018 champion.
Sabalenka's victory over Svetlana Kuznetsova was more routine.
The 21-year-old is making her debut at the tournament, but youth triumphed over experience in comfortable fashion as she needed only an hour and 17 minutes to prevail 6-4 6-3.
It is now 10 career WTA singles finals for Sabalenka, who has lost two of her three meetings with Kvitova, her solitary win coming at the 2018 US Open.