Roger Federer eased into the Madrid Open final after a 6-2 6-3 win over Janko Tipsarevic.
The Serb had beaten compatriot Novak Djokovic in the quarter-finals but was broken three times by the Swiss.
Federer will face world number seven Tomas Berdych in Sunday's decider after he beat Juan Martin del Potro 7-6 (7-5) 7-6 (8-6).
A win for Federer would see him overtake Rafael Nadal as the world's second-ranked player.
It would also see him claim his third title in Madrid and move level with Nadal on 20 Masters victories.
Federer, who is playing his first tournament for five weeks, hit 25 winners on the blue clay court with Tipsarevic, who was chasing his first win over Federer, unable to reproduce the form that helped him claim a shock win over Djokovic.
The Swiss star was dominant, moving Tipsarevic around the court and getting a break to go 3-1 ahead before breaking again at 5-2 to take the set.
Tipsarevic soon went 3-1 down in the second set and Federer quickly wrapped up victory.
In the opening semi-final, Berdych was made to work hard but eventually triumphed thanks to a strong serving display, including 15 aces.
A smart Del Potro passing shot broke Berdych for the first time in the tournament and allowed him to pull 3-1 ahead early on.
He then had a chance to serve out the first set, but Berdych broke to love to level the match and go on to win the tie-break.
Berdych kept up the pressure at the beginning of the second by taking Del Potro's first service game. Although Del Potro broke back, Berdych prevailed in the second set tie-break.
"It was really just about one or two points that decided for my side," he said afterwards. "It was really close. We fought for every point and I am really happy to have gone through."
Sunday's final will be the Czech player's first since he won in Montpellier in January.