West Indies set up a semi-final with Australia or India despite suffering a shock six-run defeat by Afghanistan.
Batting first, Afghanistan recovered from 56-5 to post 123-7, with Najib Zadran hitting a composed unbeaten 48.
West Indies, who had won their first three matches, slumped from 79-3 to 117-8 to hand Afghanistan their biggest ever win, but still top Group 1.
The result confirms that England will play New Zealand on Delhi on Wednesday in their semi-final.
West Indies will play their semi-final in Mumbai on Thursday.
Afghanistan return home having lost their first three games at this stage, but they will be buoyed by their first-ever victory over a Test-playing nation other than Bangladesh or Zimbabwe.
More to follow.