World no. 3 Roger Federer of Switzerland eased into the final after defeating Janko Tipsarevic 6-2, 6-3 of Serbia.
Federer will face Tomas Berdych of Czechoslovakia who defeated Juan Martin del Potro of Argentina 7-6 (7-5), 7-6 (8-6).
The Swiss has won 10 of his 14 matches against Berdych, including both of their clay-court encounters.
Tipsarevic was chasing his first win over Federer, but was unable to reproduce the form that helped him claim a shock win over Novak Djokovic.
Federer’s win over Tipsarevic saw him pass US$ 70 million (£ 43.5 million) in career prize money.
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.
Sunday’s final with Federer will be Berdych first since he won in Montpellier in January.