Men Federer vann till slut med 19-17 i avgörande set.
Nu väntar en finalrepris från Wimbledon mot Andy Murray.
Argentinaren Del Potro vann första set med 6-3 och pressade Roger Federer ordentligt. Inte heller andra set gick smärtfritt för schweizaren, som ändå tog hem det i tiebreak.
Och det visade sig att världsettan skulle få kämpa ännu hårdare för att nå finalen.
Efter fyra timmar och 26 minuter, rekord för en singelmatch i de olympiska spelen, var dramat över.
Och Federer stod som vinnare - efter 19-17 i avgörande set.
-Det var så klart jobbigt både fysiskt och mentalt, från början till slut. Men jag var ganska lugn, sade Federer.
-Jag hade väldigt tur i andra set när jag lyckades komma tillbaka. Jag gillade min attityd, nu har jag åtminstone säkrat min första OS-medalj för Schweiz. Jag är bara väldigt lycklig, fortsatte schweizaren efter avancemanget till OS-finalen.
Finalen blir en repris från Wimbledon eftersom britten Andy Murray, som då föll mot Federer, även han tog sig till final i de olympiska spelen efter den jämna matchen mot serben Novak Djokovic, 7-5, 7-5.
I damernas singel är världsettan Victoria Azarenka utslagen. Serena Williams, USA, såg till att avancera till OS-final efter att hon besegrat vitryskan i två raka set, 6-1, 6-2.
Nu väntar ryskan Maria Sjarapova i finalen, som i sin tur slog ut sin landsmaninna Maria Kirilenko på fredagen, 6-2, 6-3.