Record-breaker: India's Virat Kohli celebrates his 50th one-day international century
Record-breaker: India's Virat Kohli celebrates his 50th one-day international century AFP

Virat Kohli scored a record-breaking 50th one-day international hundred and Shreyas Iyer made a blistering century of his own as India piled up a commanding 397-4 against New Zealand in the World Cup semi-finals on Wednesday.

Kohli's innings of 117 saw him surpass the mark of 49 hundreds he had shared with Sachin Tendulkar as his compatriot looked on from the stands at the Wankhede Stadium in a capacity 33,000 crowd featuring football star David Beckham.

Kohli put on 163 with Iyer, who made 105 off just 70 balls, including four fours and eight sixes.

"It feels like a dream. Too good to be true," said Kohli.

"For me the most important thing is to make my team win. I've been given a role this tournament and I'm trying to dig deep."

Tendulkar hailed Kohli's "skill and passion".

"I couldn't be happier that an Indian broke my record," he wrote on X, formerly Twitter.

"And to do it on the biggest stage - in the World Cup semi-final - and at my home ground is the icing on the cake."

Former India captain Kohli had earlier added 93 runs with opener Shubman Gill, who retired hurt on 79 but returned in the last over to finish 80 not out.

New Zealand's bowlers were largely powerless to contain the onslaught after India captain Rohit Sharma won the toss.

Veteran paceman Tim Southee took three wickets but conceded 100 runs in 10 overs, with left-arm quick Trent Boult going for 86 in 10.

Left-arm spinner Mitchell Santner's 0-51 in 10, including the lone maiden of the innings, was positively economical by comparison.

But the day belonged to Kohli, looking to guide two-time champions India into Sunday's final against either Australia or South Africa, on the ground where he and Tendulkar won the 2011 World Cup.

India had won all nine of their pool games leading up to this match against New Zealand, who beat them in a rain-affected 2019 semi-final spanning two days in Manchester.

There was controversy at the start on Wednesday following revelations the match was being played on a used, rather than fresh, pitch.

Opener Rohit set the tone for the innings with a quickfire 47 before a skyed drive off Southee was well caught by New Zealand captain Kane Williamson running back from mid-off.

New Zealand thought they had number three Kohli out for a second-ball duck, lbw to Southee.

But a review of an original not out decision revealed an inside edge and Kohli was off the mark with a boundary.

Former captain Kohli completed a 59-ball fifty, including four fours before going down the pitch to drive Southee over long-on for six.

A two off Ferguson then took Kohli to his landmark hundred, his third of the tournament.

Kohli had the faced 106 balls, hitting eight fours and a six in his 279th ODI innings, with Tendulkar leading the applause as he bowed towards his childhood hero.

Dropped on 107, Kohli was eventually out for 117 when he pulled Tim Southee low to Devon Conway at deep square leg.

Iyer launched occasional left-arm spinner Rachin Ravindra for several huge sixes as he scored a second successive hundred before he holed out off Boult.

Brief scores: India 397-4 in 50 overs (V Kohli 117, S Iyer 105, S Gill 80 no; T Southee 3-100) v New Zealand