The top-ranked Nadal rallied to reach his third straight Madrid Open final with a 5-7, 6-1, 6-3 victory Saturday. The surging Novak Djokovic awaits after the Serb rallied to beat unseeded Thomaz Bellucci 4-6, 6-4, 6-1.
The first match got off to a somber start, with Nadal tearing up during an homage to the golf great, who died earlier Saturday.
Nadal controlled the early stages before uncharacteristic errors allowed the third-ranked Swiss player back into the match to win the first set.
But the defending champion took command after that, as he converted four break points over the next two sets to win his 37th straight match on clay and extend his record to 11-2 against Federer on the surface.
Nadal will try for his first title in three attempts against Djokovic in 2011 after the second-ranked Serb extended his perfect start to the season to 31 matches, equaling Bjorn Borg's streak in 1980 and behind only John McEnroe's 42 straight victories in 1984.
Djokovic has won five titles on the current run -- including the Australian Open -- and is 33-0 stretching to last year's Davis Cup win to pass Nadal for the eighth-longest streak.
The big-hitting Brazilian overwhelmed Djokovic early on before the Serb showed more energy and better shot placement to ensure the top two players will meet in Sunday's final.
Earlier, Victoria Azarenka of Belarus ended German Julia Goerges' 10-match winning streak 6-4, 6-2 to set up the women's final against Czech Petra Kvitova, who ousted sixth-seeded Li Na of China 6-3, 6-1.
Azarenka -- who ensured she would move up one spot to a career-best No. 4 in the rankings by reaching the final -- and Kvitova will each be chasing her third title of the year at the Caja Magica.
Nadal was visibly upset when he watched a video screen showing highlights of Ballesteros' career, as was former tennis great Manolo Santana, who watched from the stands. The 54-year-old Ballesteros died early Saturday of brain cancer.
"It's a sad day for Spain, for all athletes," said Nadal, who played golf with Ballesteros. "This win is much too small to dedicate to Seve -- he's one of the greatest players in the history of our sport."
It was the first time Nadal and Federer had met two straight times not in a final, and Nadal appeared on course for another quick win -- as in Miami -- when Federer was broken to trail 3-0.
But Nadal lost his rhythm and hit the ball into the net to allow Federer back in, and the 2009 champion smashed a forehand at the net for a break in the 12th game on his way to a first-set lead.
The winner of the first set had taken the previous 12 meetings between these rivals.
But Nadal broke Federer immediately in the second set, and the Swiss star never seemed to recover from a disputed call that TV replays showed touched the sideline.
Nadal rode that momentum into the final set and went ahead 4-1 when Federer hit wide to be broken.
Federer emerged from a 20-shot rally with a break chance in the second-to-last game but sent his backhand into the net. Nadal clinched it when Federer hit his 45th unforced error into the net.
"Playing Federer always provides a special satisfaction as we have played so many important matches," said Nadal, who improved to 16-8 overall against Federer. "It was a difficult game, not one of our best games for either of us."
Bellucci's booming forehand forced Djokovic into 19 unforced errors in the first set, the Serb often scrambling to get the ball back while deep behind the baseline.
Djokovic watched a triple break point disappear when his 36th-ranked opponent won 10 straight points and broke to lead 3-1. But the Serb broke back and tied the second set at 3-3 before smashing a forehand at the net for a second break, the set and a big boost.
Djokovic fired a crosscourt forehand to break Bellucci for 2-0 and was flying after that as he closed it out with his sixth ace.