Acapulco - South Africa's Kevin Anderson moved one step closer to capturing his second consecutive title with a 6-3, 4-6, 6-3 victory over American qualifier Jared Donaldson at the ATP Mexican Open.
Anderson, of Johannesburg, won the New York Open crown two weeks ago.
World No 8 Anderson has plenty of confidence heading into Saturday's final where he will face Argentina's Juan Martin Del Potro.
"It just feels great to win tonight's match," Anderson said. "When you're out there, you're not really thinking about finals and what happened before. In the heat of the battle, I thought it was a really tough match."
Since last January, when he plunged to 80th in the world, Anderson has made five finals comprising Washington DC, the US Open, Pune, New York and now Acapulco. He was runner-up at the 2017 US Open.
Anderson saw his ranking fall off as a result of a variety of injuries and health issues.
In the other semi-final, Del Potro blasted six aces and broke Alexander Zverev's serve three times en route to a 6-4, 6-2 win on Friday night (Mexican time).
Del Potro, who is seeded sixth, won 78 percent of his first-serve points and 55 percent of his second serves in the one hour, 31-minute match.
Zverev, of Germany and the second seed, hammered 10 aces but had two double faults.
On the women's side of the draw, defending champion Lesia Tsurenko earned a ninth straight victory at this event as she held off a late charge from Daria Gavrilova to return to the WTA final with a 6-2, 6-4 win.
Tsurenko will have the opportunity to play for her fourth career WTA title against Swiss Stefanie Voegele who cruised past Swedish qualifier Rebecca Peterson 6-4, 7-6 (7/5).
"I just really like it here. I think all the conditions for the tournament are just great and I know that all the players enjoy to play here," the Ukrainian Tsurenko said.
Results in ATP and WTA Mexican Open in Acapulco (x denotes seeding):
Kevin Anderson (RSA x5) bt Jared Donaldson (USA) 6-3, 4-6, 6-3
Juan Martin del Potro (ARG x6) bt Alexander Zverev (GER x2) 6-4, 6-2
Lesia Tsurenko (UKR x7) bt Daria Gavrilova (AUS x3) 6-2, 6-4
Stefanie Voegele (SUI) bt Rebecca Peterson (SWE) 6-4, 7-6 (7/5)