Thibaut Courtois produced a stunning last-gasp save as Real Madrid beat Borussia Dortmund 3-2 to set up a Club World Cup semi-final with Paris Saint-Germain, amid stoppage-time drama in New Jersey.