Spain defeated France while Argentina staged a late comeback against England to set up a World Cup final showdown.