India demolished defending champions England by 90 runs in a group A match in Colombo after Pakistan had pipped New Zealand by 13 runs in group D in Pallekele.
Both India and Pakistan are almost certain to be drawn in the same Super Eights group, with a match between the Asian giants scheduled to be played in Colombo on September 30.
India are already assured of a place in the Super Eights, while Pakistan take on Bangladesh in their last league match on Tuesday needing a win to advance.
Harbhajan Singh grabbed 4-12 on his return after a year in the wilderness as a new-look India outplayed England in front of 20,000 spectators at the Premadasa stadium in Colombo.
Rohit Sharma hit an unbeaten 55 off 33 balls as India scored 170-4 before England were shot out for their lowest T20 total of 80 in 14.4 overs.
India rested seamer Zaheer Khan, spinner Ravichandran Ashwin and opener Virender Sehwag for the match that held only academic interest since both teams had already made it to the Super Eights.
Out of favour
Harbhajan (32) who had been out of favour with the selectors since August last year before being recalled for the World Twenty20, claimed a wicket off his second delivery when he came on in the sixth over.
When his spell finished in the 12th over, England had slumped to 60-8 and lost their ninth wicket also at the same total.
England were in danger of falling for the lowest ever total in Twenty20 internationals – 67 by Kenya against Ireland in 2008 – before the last-wicket pair of Steven Finn and Jade Dernbach prevented the humiliation.
But the total still fell below England's previous lowest score of 88 against the West Indies at the Oval last year.
Leg-spinner Piyush Chawla, who was also an unexpected selection for the match, claimed 2-13 and seamer Irfan Pathan took 2-17 as England faltered against both pace and spin.
Other notable contributions for India came from Gautam Gambhir, who made 45, and Virat Kohli, who smashed 40 off 32 balls.
"It's been a hard year being out of the side," an emotional Harbhajan said. "Other boys were doing really well, so it was really difficult for me to make a comeback.
"For me this was an important game. Getting a wicket off the second ball gave me a lot of confidence. This India shirt is everything for me. I don't know what I would do if not playing for India."
England captain Stuart Broad conceded his team played poorly.
"Poor all round really," he said. "We were okay with 171, but India bowled really well. We played across the line too much. I don't agree we can't play spin. Certainly in training we have been learning.
"We have had a very bad day, but that does not affect the rest of the tournament. It does not change where we go."
In Pallekele, another off-spinner Saeed Ajmal took four wickets as Pakistan kept their nerve to pull off an exciting win over New Zealand in their first match in the tournament.
Ajmal's 4-30 helped Pakistan restrict New Zealand to 164-9 after setting the Black Caps a daunting 178-run target on the back of a career-best 56 from Nasir Jamshed.
Pakistan captain Mohammad Hafeez said he was confident his bowlers would win the game.
"We have good variations in our bowling and Ajmal was once again outstanding," he said. "Once we got Brendon McCullum out, we were sure of winning." – Sapa-AFP