Suryakumar Yadav's unbeaten half-century saw India top Group 2 at the T20 World Cup as they set up a semi-final clash with England following a comfortable 71-run victory over Zimbabwe in Melbourne.

Heading into Sunday's game, Rohit Sharma's side knew their place in the last four was already secured after South Africa fell to a shock loss against the Netherlands earlier in the day.

But with top spot on the line after Pakistan comprehensively beat Bangladesh by five wickets, India knew they would need to post a similarly convincing win to overhaul their rivals.

They responded to the challenge with impressive power, guided by a freewheeling 61 not out off 25 balls for Yadav, ably supported by earlier knocks for KL Rahul (51) and Virat Kohli (26) to post a fearsome 186-5.

Sean Williams posted Zimbabwe's best bowling figures with 2-9, but could not help his side avoid leaking runs, and any prospect of a Zimbabwe chase appeared slim when Wesley Madhevere was caught first ball.

Sikandar Raza (34) and Ryan Burl (35) were valiant in pursuit, but India were out of sight thanks to a bowling attack led by Ravichandran Ashwin (3-22), to set up a showdown with England in Adelaide next week.

Yadav steadies fort after early wobbles

There was one nervy moment for India as they lost three wickets – Kohli, Rahul and Rishabh Pant – for 14 runs in a flash, slipping from 87-1 to 101-4.

But Yadav's emphatic turn ensured India put up a daunting total that proved well beyond Zimbabwe.

Zimbabwe head home on a whimper

Having delivered one of the shocks of the tournament when they edged Pakistan by one run, a result that seemingly took the latter out of semi-final consideration at one point, this was a lacklustre final bow from Zimbabwe.

Though Craig Ervine's side were always likely to face an uphill battle to chase down India, their poor choices combined with a lethal opposition bowling attack left them with their lowest full-innings total at this year's T20 World Cup.