Rafael Nadal beat fellow Spaniard Pablo Carreno Busta 6-3 6-2 to reach his 12th Barcelona Open final.
Victory sets up a re-match with Greece's world number five Stefanos Tsitsipas, who came back from two sets down to stun Nadal in February's Australian Open quarter-finals.
World number three Nadal, 34, has won all 11 previous finals and has only ever lost four matches in Barcelona.
Tsitsipas, 22, beat Italian Jannik Sinner, 19, 6-3 6-3 to reach the final.
Nadal beat Tsitsipas in the 2018 final, losing just three games, although the Greek did beat him on clay in the semi-finals in Madrid in 2019.
"I will try to redeem myself from last time," said Tsitsipas, who won his first Masters 1,000 event in Monte Carlo last week.
It took Nadal only 90 minutes to defeat his 29-year-old Davis Cup team-mate Carreno Busta.
"Tomorrow will be a very tough one. Stefanos is playing probably better than ever," said Nadal.
"Not one set lost in Monte Carlo and here, so it will be the toughest opponent possible."
World number one Novak Djokovic suffered a shock defeat in his home Serbia Open, losing to Russia's Aslan Karatsev in the semi-finals.
Last week, British number one Dan Evans knocked Djokovic, 33, out of the Monte Carlo Masters at the last-16 stage.
On Saturday, world number 28 Karatsev saved 23 of 28 break points to beat Djokovic 7-5 4-6 6-4 in Belgrade.
The 27-year-old will meet either Japan's Daniel Taro or Italian Matteo Berrettini in Sunday's final at Djokovic's tennis centre in Belgrade.
Meanwhile World number one Ashleigh Barty produced a comeback win on her 25th birthday to beat Elina Svitolina and reach the Stuttgart Open final.
The Australian came from a set down in the clay court tournament to win 4-6 7-6 (7-5) 6-2 against the 26-year-old Ukrainian fourth seed.
She will meet fifth seed Aryna Sabalenka in Sunday's final after the Belarusian later beat former world number one Simona Halep 6-3 6-2.
"I love to play tennis and I love to compete, so to do it on my birthday is even more special," said Barty, who has won in Melbourne and Miami this year.