The Swiss, bidding to complete his haul of the grand slams, recovered from a slow start to claim a 3-6 7-6 (7/2) 2-6 6-1 6-4 victory in three hours and 28 minutes.
The second seed will meet Robin Soderling in tomorrow’s final after the Swede defeated Fernando Gonzalez 6-3 7-5 5-7 4-6 6-4 earlier today in another thrilling five-setter to continue his remarkable run in Paris.
It was Federer’s second five-set win in this tournament – he was also taken the distance by Tommy Haas in the fourth round – and he has squeezed through to his fourth straight final here without being on top form. When Federer, 27, lost the third set to Del Potro, the Argentinian was serving consistently and his powerful groundstrokes were proving too much for the world number two.
By that stage, Federer had only earned two break points, converting neither of them, but he turned that around to finish the stronger.
He is now just one win away from becoming the sixth player to complete a sweep of the Majors. The title here would also move him level with Pete Sampras on a record 14 grand-slam crowns.
Federer, installed as title favourite after Soderling dumped out reigning champion Rafael Nadal in round four, had won all his previous five meetings with Del Potro, not even dropping a set.
Soderling had earlier come from 4-1 down in the fifth set to sink 12th seed Gonzalez in a riveting battle of the big hitters.
“My first feeling was relief because it was a long match and I was tired, but after a few seconds I got really, really happy,” said Soderling, who was cheered on by legendary Swede Bjorn Borg.
“If you’d have asked me a couple of years ago which grand slam I’d be playing a final in, I wouldn’t have said Roland Garros.”
The 23rd seed, who entered the history books after slaying Nadal last Sunday, went two sets ahead but was pegged back by Gonzalez, who showed great opportunism to nick the third and fourth on his only break points in those sets.
The Chilean forged 3-0 then 4-1 ahead in the decider, but Soderling reeled off five straight games to claim a superb win.
Gonzalez, a barrel-chested, bandana-wearing slugger, had left his previous opponents, which included Britain’s Andy Murray, punch-drunk with his booming forehand but he met his match yesterday, Soderling hitting 74 winners in total.
Meanwhile, Dinara Safina could not be in better shape as she heads into today’s women’s final against fellow Russian Svetlana Kuznetsova looking to end her wait for an elusive grand-slam title.
Safina, the world number one and top seed, lost to Ana Ivanovic in last year’s final at Roland Garros and then to Serena Williams in the Australian Open showpiece earlier this year.
But she will start as favourite to finally clinch a Major when she takes on seventh seed Kuznetsova, the 2004 US Open champion and runner-up here in 2006.
“I wouldn’t say that I was nervous last year – I just think I was tired overall because I had such a tough draw and I had to pull out so many matches,” said the 23-year-old, who as 13th seed lost 6-4 6-3 to Ivanovic.
“This year I’ve spent much less time on the court so I’m much fresher. I hope this time I will do it.”
Kuznetsova, who is also 23, believes relaxing will be the key to success today.
“To control my nerves, I have to loosen up,” she said. “I want to just go out there and enjoy it.”