Pau Gasol and Jose Calderon rescued Spain after the break as the European champion rallied to beat Russia 67-59 and reach their second straight Olympic men's basketball gold medal game against the mighty United States.
Kevin Durant scored 19 points while Carmelo Anthony and LeBron James added 18 apiece as the heavily favoured Americans rolled past Argentina 109-83 in the second semi-final on Friday.
On Sunday, the unbeaten Americans will be seeking their 14th gold medal from 15 finals they have made in 17 attempts, having missed out in 1988 and 2004.
Four years ago in Beijing, the Spaniards hung with the Americans before losing 118-107 in the final.
"It's huge to make it twice in a row to the Olympic finals," said Spain's LA Lakers star Pau Gasol.
"We have to enjoy it and appreciate the moment, but there's still one game left. We can't just be happy with reaching the final."
With James doing a little of everything, the Americans finally pulled away in the third quarter from Argentina, whose strong outside shooting had them within six points at halftime.
Spain lost two games in group play, including to Russia, but the team loaded with NBA players has risen to the occasion again when it matters. It beat France in a tense quarter-final after trailing and did it again against Russia, which collapsed in the second half.
Pau Gasol had 16 points and Jose Calderon scored 12 of his 14 in the second half as Spain rallied from an 11-point halftime deficit.
"I'm extremely proud of all we have accomplished as a team," coach Sergio Scariolo said. "That doesn't mean that our mission is over."
Spain trailed Russia by 13 in the first quarter and was still down by double digits in the third before showing why its the world's No.2-ranked team. The Spaniards shot just 21 percent in the opening half, but recovered to keep alive their dreams of winning a first Olympic gold.