Rafael Nadal beat Croatia's Duje Ajdukovic to reach the final of the Swedish Open in Bastad.
In his quarter-final the previous day, Nadal won one of the longest best-of-three-set matches of all time (also the longest of the year) and on Saturday he prevailed in another exciting three-set clash, winning 4-6 6-3 6-4.
After dropping the first set, Nadal came back to take the semi-final with Ajdukovic into a decider.
Nadal will face Portugal's Nuno Borges in the final on Sunday, live on Sky Sports Tennis, after Borges defeated Argentina's Thiago Agustin Tirante 6-3 6-4 later on Saturday.
He started that third set in dominant fashion, breaking Ajdukovic in the first game, and then secured another break of serve to take a commanding 3-0 lead in the set.
Ajdukovic, however, did manage to break back in the fourth game and in the next completed an essential hold of serve.
After preventing the match from slipping too far out of his reach, Ajdukovic put Nadal under pressure, getting three break points in the sixth game. He converted the second to level the set 3-3.
Nadal had seen the double-break lead he was sitting on evaporate.
But the all-time great still managed to storm back, securing two break points of his own in the seventh game. He only needed the first and pumped his fist in delight when he took it to get back in front.
He had a struggle to hold serve to go 5-3 up, working the game back to deuce before getting himself to advantage and then scooping a forehand off the ground to put a return beyond the Croatian.
With Nadal serving for the match, Ajdukovic finally netted after a long rally and the Spaniard could celebrate his progression to the final.
"I had a very tough match, the opponent had one of the best backhands that I've played against. He came here with a lot of confidence," Nadal said.
"I was trying to push him back, it was very, very difficult honestly, but I found a way to survive and to be through to the final after a long time without being in a final. So that's great news and I'm very happy with that."
Sunday will see him play in his first ATP Tour final since 2022.
Nadal is playing at this tournament in Sweden for the first time since he won the title as a 19-year-old in 2005 as he prepares for the Olympic tournament on clay at Roland Garros in Paris.
The 38-year-old skipped Wimbledon as he did not want to switch surface to grass and then back to clay and risk injury. He has been dealing with hip and abdominal injuries over the past 18 months.
"I'm still in this process of recovering a lot of things that I lost because I had very important hip surgery almost one year ago. So things are not going that easy but I'm fighting," Nadal said.
"Matches like yesterday, like today help to improve a lot of things on court. So I'm happy with that and let's see if I am able to play a little better tomorrow."
Top seed and defending champion Alexander Zverev, meanwhile, eased into the Hamburg Open final with a 6-2 6-4 victory over Spaniard Pedro Martinez.
Zverev will meet French challenger Arthur Fils on Sunday after he overcame third seed Sebastian Baez 6-2 6-2.
At the Swiss Open in Gstaad, top seed Stefanos Tsitsipas lost in straight sets to his semi-final opponent Matteo Berrettini.
Berrettini triumphed 7-6 7-5 and will face qualifier Quentin Halys in Sunday's final after the Frenchman saw off Germany's Jan-Lennard Struff 6-3 7-6.
Halys, ranked 192 in the world, reached his first ATP Tour final, and Berrettini said of his opponent: "I saw every match that he played [this week], and I guess like me he is getting more and more confident.
"He played so many matches and won against great players. It is going to be a tough one, but I am going to be ready."
Watch Rafael Nadal in the final of the Swedish Open on Sunday live on Sky Sports Tennis
What's coming up on Sky Sports Tennis?
In the run-up to the final Grand Slam of 2024 - the US Open - you can watch all of the biggest tennis stars in action live on Sky Sports as they compete across the hard-court season.
- Prague Open (WTA 250) 21-26 July
- Iasi Open (WTA 250) 21-26 July
- Umag Open (ATP 250) 21-26 July
- Atlanta Open (ATP 250) - 22-28 July
- Generali Open, Kitzbuhel (ATP 250) - 22-28 July
Watch the WTA and ATP Tours throughout 2024 on Sky Sports Tennis. Stream Sky Sports Tennis and more with a NOW Sports Month Membership. No contract, cancel anytime.