Spain kept the ball well throughout and tired Germany out. The best chance of the first half fell to Carlos Puyol who headed over from a few yards out after a driven cross from Andres Iniesta on 14 minutes.
Spain continued to keep the jabulani and put Germany under pressure. The pressure finally told on 73 minutes when a Xavi corner was met by the head of Puyol who rocketed his past Manuel Neuer in the German goal. Spain had chances to wrap the game up with Pedro and Fernando Torres but neither could find a finish.
Spain go through to the final on Sunday and will play the Netherlands.