A headed goal by defender Carles Puyol carried Spain to their first World Cup final on Wednesday when they beat Germany 1-0 in the semi-finals.
Spain will face Netherlands at Soccer City in Johannesburg on Sunday. The Dutch have been in the final twice before but have never won it so a new world champion is guaranteed.
The Spaniards dominated the match but struggled to finish off a German side lacking their usual pace until Puyol struck with a powerful header from a Xavi corner in the 73rd minute.
"Players from defence to attack were extraordinary and played a great game," said Spain coach Vicente del Bosque.
'We deserved to score more'
"We've shown that in the big moments we've risen to the occasion.
"It's the best game we've played. We deserved to score more but a Puyol goal put us in the final and we're exultant," striker David Villa said.
The European champions dominated possession early on and needed only five minutes to carve out their first chance against a nervous German defence.
Spain forward Pedro, who started ahead of the misfiring Fernando Torres, played the ball for David Villa, who caught Arne Friedrich napping but could not beat keeper Manuel Neuer.
Spain maintained constant pressure
With the Germans, who lost the Euro 2008 final to the Spaniards by the same score, boxed into their own half, Spain kept up the pressure, with Puyol heading an Andres Iniesta cross from the right narrowly over the bar after 15 minutes.
Germany's Piotr Trochowski, who replaced the suspended Thomas Mueller on the right, stretched Spain goalkeeper Iker Casillas with a well-struck low drive.
Pedro and Sergio Ramos continued to single out Germany left back Jerome Boateng as a weakness, cutting the ball back from the wing for midfielder Xabi Alonso who twice fired wide early in the second half.
The Spaniards came agonisingly close in the 58th minute with a Pedro shot that forced a spectacular save from Neuer before Iniesta cut the ball across the face of goal a metre ahead of the sliding Villa.
Germany remained on the backfoot and 17 minutes from time were punished when Puyol headed the winner leaving Spain to soak up some late pressure before reaching the final.
'We weren't as sharp tonight as we've been'
"I believe they (Spain) will win this tournament," said Germany coach Joachim Loew.
"Spain let the ball roll so well and you just can't keep up with them. We played a great tournament but weren't as sharp tonight as we've been," he added.
"It was very difficult tonight," added Germany captain Philipp Lahm.
"We knew Spain were a favourite to win the tournament. Spain is a very strong team," he added.