West Indies edged out defending champions England by 15 runs while Sri Lanka needed a one-over eliminator to upstage New Zealand, who fought back to tie the match from the jaws of defeat.
Chasing a daunting 180-run target, England came close with Eoin Morgan (71 not out) and Alex Hales (68) putting on a resolute 107-run partnership for the fourth wicket but in the end they fell short.
England had lost Craig Kieswetter and Luke Wright for first over ducks but Hales, who hit five boundaries and two sixes off his 51 balls, and Morgan's 36-ball knock, with five sixes and four boundaries, defied West Indies's four-pronged spin attack.
England needed 125 runs in their last 10 overs but Morgan and Hales paced the innings well before Marlon Samuels bowled an excellent last over, conceding only eight runs.
West Indies were set on their way for a big total by openers Johnson Charles and Chris Gayle.
Charles smashed three sixes and 10 well-timed boundaries in his 56-ball 84 while Gayle hit four sixes and six fours in his 35-ball 58.
Setting a target
West Indian captain Darren Sammy said spinners made the win possible.
"We backed ourselves to set a target and the openers got us going well," said Sammy.
"With [Sunil] Narine, Samuel, Chris [Gayle], we decided to maximise our spinners against England and it worked out."
England skipper Stuart Broad was left disappointed.
"We had to regroup, obviously losing two wickets in that first over hurt us but we showed how good the wicket was. We were quite happy with our effort with the ball and I think we're disappointed not to win tonight," said Broad.
Earlier, Sri Lanka and New Zealand were locked on 174 runs at the end of 40 overs before a "super over" win left the hosts and a 25 000 home fans delighted.
New Zealand paceman Tim Southee restricted Sri Lanka to 13-1 but Lasith Malinga managed better, finishing the New Zealand innings five short of his team's total.
It was the seventh tied match in all Twenty20 cricket, with New Zealand involved in four of them.
Tillakaratne Dilshan (76) and Mahela Jayawardene (44) had put Sri Lanka on course for a successful run chase before New Zealand pulled back through some accurate bowling and fielding.
With Sri Lanka needing 21 off the final two overs, Dilshan hit James Franklin for a six off the first ball before he was run out off the next.
It boiled down to eight off the final over. Lahiru Thirimanne hit a boundary off Southee's penultimate delivery but was run out off the final ball, luckily for New Zealand the ball hitting the stumps after coming off Ross Taylor's knee.
Dilshan hit three sixes and five boundaries during his 53-ball knock.
"It's nice to have a win under your belt so the pressure eases down," said theSri Lankan captain. "Judging by Taylor's reaction on the last ball we thought we had won but it needed a super over."
Taylor said he was proud of his team's fightback.
"To lose tight matches is always disappointing," said Taylor. "But from the situation we were in I thought we fought back very hard and never gave up. I am proud of my team."
New Zealand owed their total of 174-7 to a career best fifty by opener Rob Nicol.
Nicol, who hit four sixes and three boundaries, put on a brisk 57 for the opening wicket with Martin Guptill (38) and 42 for the second with Brendon McCullum (25) before he fell in the 16th over.
Nicol's previous T20 highest was 56 against Zimbabwe at Hamilton earlier this year.
Sri Lankan spinner Ajantha Mendis, who took 6-8 in the first round match against Zimbabwe, went for 48 runs in four overs.
Pakistan play South Africa while India meet Australia in group two Super Eights matches in Colombo on Friday. Top two teams from each group will qualify for semifinals. – Sapa-AFP