In reply, spin claimed all 10 Canadian wickets, as Ray Price and Graeme Cremer picked up three apiece while Prosper Utseya and Greg Lamb each grabbed a brace to bowl the minnows out for 123, leaving Zimbabwe comfortable victors with eight overs to spare.

Khurram Chohan got Canada off to the perfect start dispatching Brendan Taylor for a first-ball lbw and Zimbabwe were seven for two with Charles Coventry's dismissal for four. Taibu restored order for his side, racing to a 46-ball 50, as he and Ervine ensured Zimbabwe cruised through the middle overs.

Ervine smashed six boundaries and two sixes before being caught behind for 85, while Taibu was cruelly left two short of his 100, caught by John Davison, with Balaji grabbing both wickets.

Runs continued to flow, even though Canada picked up wickets steadily in the closing overs, with Elton Chigumbura (five), Sean Williams (30), Lamb (11), Utseya (22) and Cremer (26) perishing in the quest for quick runs.

Zimbabwe too picked up early wickets with Davison bowled by Price in the second over.

The left-arm spinner tripled his tally in the sixth over, first catching Nitish Kumar – at 16 years and 283 days old the youngest World Cup player to date – off his own bowling before having the captain Ashish Bagai caught for a first-ball duck.

A 43-run partnership between Jimmy Hansra (20) and Ruvindu Gunasekera (24) lifted Canadian hopes but they departed in successive overs, to Utseya and Lamb respectively.

Rizwan Cheema smashed two boundaries and a six for his 14, but could not build on that, falling to Utseya, with Chohan following soon after for eight.

Zubin Surkari top scored for Canada with his 26 off 48 balls but that only delayed the inevitable.