(CNN) -- The World Cup will have a new winner on Sunday after Spain beat Germany 1-0 to set up a mouthwatering clash with the Netherlands.
Spain's hero was Barcelona defender Carles Puyol as his 73rd minute header secured his country's first ever World Cup final.
Puyol rose highest to power Xavi's corner into the net and hand Spain a deserved victory.
Vicente del Bosque's team dominated possession against their opponents and should have won by a more convincing score line but they couldn't convert their chances.
Germany only created a handful of opportunities as they attempted to avenge their defeat to Spain in the European Championships final of 2008 but they failed to regularly test Spain goalkeeper Iker Casillas.
Spain will now face Netherlands at Soccer City in Johannesburg on Sunday after they beat Uruguay 3-2 in the other semifinal on Tuesday night.
Liverpool striker Fernando Torres was dropped in favor of Pedro Rodriguez as Spain made one change from their quarterfinal team. Germany drafted in Piotr Trochowski in place of the suspended Thomas Muller.
It was Barcelona striker David Villa who had the first chance of the game but his effort was smothered by Germany goalkeeper Manuel Neuer.
Puyol was the next to go close for Spain after he headed Andres Iniesta's powerful cross over the bar.
Lukas Podolski registered Germany's first effort on goal just after the half hour mark as Spain keeper Iker Casillas turned his shot round the post.
Just before the break Mesut Özil went down under a challenge from Sergio Ramos but the referee waved away his appeal for a penalty.
Spain stepped it up a gear after halftime and Xabi Alonso came close with a fierce shot from the edge of the area that flashed past the post.
Pedro was next to shoot but Neuer blocked his effort before Iniesta rolled a pass across the goal line with Villa agonizingly close to tapping home.
Substitute Toni Kroos nearly scored with his first touch for Germany as he was found by a Podolski cross but Casillas parried his volley.
But just four minutes later Spain were in front. Xavi's corner was met by Puyol, and his header sped past Neuer.
As Germany tried to force an equalizer Spain should have made the game safe but Pedro failed to tee up Torres when the striker had a clear run on goal.
Spain held on to record another one goal victory and seal a first ever World Cup final appearance. Neither they, nor opponents Netherlands, have ever won world football's most prestigious trophy but one team will make history on Sunday.