England have beaten New Zealand in their final group stage game to book their spot in the Cricket World Cup semi-finals.

Jonny Bairstow sparkled for the hosts as he registered a second successive century before New Zealand looked to have pegged England back in their pivotal World Cup meeting at Chester-le-Street.

Both sides needed a win from their final group stage fixture to guarantee progression to the semi-finals and Bairstow put England in command by following up his hundred against India on Sunday with 106 off 99 balls here.

Jason Roy also contributed 60 as he and Bairstow once again clicked into gear at the top of the order, but, from a supreme position of 194 for one after 30 overs, England stuttered to a relatively modest 305 for eight.

There was a suspicion either the pitch had slowed or the balls had softened as England’s vaunted middle order were left groping after Roy and Bairstow had given them an excellent platform.

Trent Boult, Matt Henry and James Neesham each took two wickets, the latter conceding only 41 runs from his 10-over allotment.

Bairstow was the headline act after England had decided to bat first, showing impeccable timing early on, with New Zealand hindered by the absence of their leading tournament wicket-taker Lockie Ferguson due to a tight hamstring.

Both Bairstow and Roy were watchful against Trent Boult, but they peppered the boundary rope to reach yet another 50 stand from only 38 balls.

Bairstow was strong either side of the wicket on a ground where his 83 not out inspired England to a bilateral series victory over the Black Caps four years ago, while Roy proved a capable foil.

Roy was less sure of himself, but reached his half-century first from 55 balls, Bairstow following from nine fewer deliveries, before softly driving Neesham to short cover to end a 123-run stand.

Roy was furious with himself, striking the floor with his bat on his departure, but Bairstow maintained superb concentration and was soon into the 90s with a sublime drive down the ground off Tim Southee for six.

Two leg-side fours in the space of three balls took the Yorkshireman to three figures from only 95 balls, but the beginning of England’s struggles came off the next ball as Joe Root was caught behind off Boult for 24.

A review proved fruitless, Ultraedge showing Root had got a thin top edge to a pull. Root’s departure led to Jos Buttler being promoted up the order, the move backfiring when he clothed Boult to mid-off for 11 lees than three overs after Bairstow’s dismissal for 106.

Ben Stokes had contributed 250 runs in his last three innings, but flattered to deceive on his home ground, contributing 11 from 27 deliveries before holing out to long-on off Santner.

The succession of wickets had the knock-on effect of drying up the boundaries. Eoin Morgan flickered in a 40-ball 42 before being caught brilliantly at short cover by Santner.

Liam Plunkett and Adil Rashid combined in a 29-run stand which took England past 300, which seemed the bare minimum at the halfway stage.

With the ball, England got the job done, albeit with a bit of help from the visitors.

Jofra Archer, Chris Woakes, Stokes, and Mark Wood all took wickets, but it was the run outs of Kane Williamson and Ross Taylor that pushed the hosts closer to the finish line.