India will face England and New Zealand play Pakistan in the semi-finals as a Twenty20 World Cup full of shocks wrapped up its Super 12 stage in suitably scintillating fashion on Sunday.
South Africa had been fully expected to seal their place in the final four in Australia as they met the Netherlands at the Adelaide Oval on the last day of the group stage.
But the Dutch refused to read the script, Colin Ackermann blasting 41 off 26 balls as the Netherlands stunned the heavily fancied Proteas by 13 runs.
South Africa had been touted as dark horses for the title but instead it extended their wretched run in white-ball World Cups and saw Mark Boucher's reign as coach end in bitter disappointment.
"Gutted, to be honest," he said. "I think this squad deserved to give themselves a better chance.
"Unfortunately it didn't happen for us, which is very disappointing for me and certainly every single guy who's in our dressing room at the moment."
The Dutch finished a heady fourth in Group 2 and so will not need to go through qualifying for the next World Cup.
"The fact that we now have an opportunity to just walk straight in, I think it's a good confidence booster and very good for Dutch cricket," said bowler Brandon Glover, who took 3-9 against shell-shocked South Africa.
"Hopefully we can take advantage of it."
Dutch delight changed the complexion of Group 2.
It sent top-ranked T20 side India into the semi-finals before they even played Zimbabwe and turned Pakistan versus Bangladesh into a virtual quarter-final.
Fast bowler Shaheen Shah Afridi then put three months of injury misery behind him with his career-best T20 figures of 4-22 to lead Pakistan into the last four.
Pakistan's World Cup campaign had looked dead and buried after an agonising last-ball defeat to India in their opener and then a shock loss to Zimbabwe.
Now they will face last year's beaten finalists New Zealand on Wednesday in Sydney for a place in the November 13 final at the Melbourne Cricket Ground.
- 'Thank you' -
Rampant India thrashed Zimbabwe by 71 runs in the final group game to ensure they topped Group 2 ahead of arch-foes Pakistan and now face Jos Buttler's England at the Adelaide Oval on Thursday.
Suryakumar Yadav hit a blazing unbeaten 61 and KL Rahul 51 as India piled on 186-5 against Zimbabwe, then bowled them out for 115 front of 82,507 mostly Indian fans at the MCG.
It was an ominous warning of intent from the 2007 champions.
"The fans have been brilliant all this while," said India skipper Rohit Sharma.
"Almost everywhere we've gone we've got a full house and we expect the same in the semi-finals as well.
"On behalf of the team, I'd really like to thank them."
New Zealand, England and defending champions Australia all finished on seven points in Group 1, but the hosts missed out because of their vastly inferior net run rate. The Black Caps beat England to top spot.
Aside from plenty of rain, this World Cup has earned a reputation for one of shocks.
It all started on day one, in the preliminary round, when Asian champions Sri Lanka were hammered by Namibia by 55 runs.
Sri Lanka would still qualify for the Super 12 and along with them came Ireland, who dumped out two-time champions the West Indies.
The Irish were at it again at a wet Melbourne Cricket Ground as they defeated England, who along with Australia were the pre-tournament favourites.
England rescued their World Cup hopes with victory over New Zealand and then squeezed into the last four on Saturday when Ben Stokes drove them to a four-wicket win over Sri Lanka with two balls to spare.
"England are a good team and it will be a great contest," said Rohit.
"We should take pride in qualifying, firstly, and if we play that semi-final well, we have another big game as well."