You are not permitted to download, save or email this image. Visit image gallery to purchase the image.
The 40th career meeting between the golden duo with 38 Grand Slam titles between them, swung this way and that before Federer seized control to claim a 7-6(3) 1-6 6-3 6-4 victory.
World number one and defending champion Novak Djokovic now stands between the 37-year-old Federer, the oldest finalist here since Ken Rosewall in 1974, and a record-equalling ninth Wimbledon title in Sunday's showpiece.
"I'm exhausted. It was tough at the end," said 20-time Grand Slam champion Federer, who needed five match points to end an absorbing scrap that never scaled the heights of their 2008 epic when Nadal won a final dubbed the greatest of all time.
"Rafa played some unbelievable shots to stay in the match. The match was played at a very high level.
"It was a joy to play today," he added after reaching his 31st Grand Slam final.
After edging a tense first set by taking the last five points of the tiebreak, Federer was overpowered in a 36-minute second as Nadal, eyeing a first Wimbledon title for nine years, appeared to have wrestled control.
Federer's fans inside Centre Court and those massed on 'Henman Hill' watching the drama unfold on the giant screen, need not have worried though as the second seed proved he had plenty left in the tank.
Playing with relentless aggression Federer began to dictate from the baseline and broke early in the third set, held off a fierce Nadal counter-attack in the next game, then swept back into a one-set lead.
The effervescent Swiss turned the screw to break again early in the fourth and there was to be no way back for third seed Nadal as he lost a Grand Slam semi-final against Federer for the first time, having won the previous four.
The 33-year-old Spanish warrior was never going to slink away without a fight though.
He clung on at 3-5, saving two match points, then had a break point as Federer served for the match.
The ice cool Swiss fended off that danger and unloaded everything in his arsenal at Nadal in two more break points, only to see victory snatched away by two sublime winners off the indefatigable Spaniard's racket.
A fifth match point arrived though and as Nadal swung a backhand over the baseline Federer pumped his arms above his head to celebrate only his fourth Grand Slam win over the Spaniard he has battled around the world for 15 years.
"Today it's sad for me because chances are not forever," a deflated Nadal said. "He played a bit better than me, I had a few small chances but didn't convert them."