New Zealand reached their second World Cup final with a stunning 18-run win over shell-shocked India at Old Trafford on Wednesday.

The Black Caps will play hosts England or holders Australia in Sunday’s title match at Lord’s after pulling off a remarkable triumph against two-time champions India.

New Zealand, beaten in the 2015 final by Australia, were restricted to just 239-8 after completing their 50 overs a day later than expected following the suspension of play due to rain on Tuesday.

But Kane Williamson’s side bowled superbly to rock India, with three top-order wickets from paceman Matthew Henry proving the key contribution in dismissing the pre-tournament favourites for 221.

Earlier, Ravindra Jadeja gave India hope of what would be a remarkable win after a stunning top-order collapse left them reeling against New Zealand on Wednesday.

India lost key batsmen Rohit Sharma, Virat Kohli and KL Rahul for just one run each as they slumped to five for three and were 24 for four when Dinesh Karthik was out for six.

But India recovered to 150-6 off 40 overs, needing a further 90 runs off the remaining 60 balls to reach a victory target of 240 at Old Trafford.

Jadeja, who had hit well-struck sixes off both all-rounder Jimmy Neesham and left-arm spinner Mitchell Santner, was 39 not out and MS Dhoni 24 not out.

It was a fine effort from Jadeja, dismissed as a “bits and pieces player” by former India batsman Sanjay Manjrekar, after he had also taken one wicket for 34 runs with his left-arm spin and been brilliant in the field.

New Zealand pacemen Matt Henry (three for 23 in seven overs) and Trent Boult (one for 15 in six) did the early damage.

They were helped by some fine fielding, Neesham holding a superb one-handed catch at backward point to dismiss Karthik off Henry.

Sharma began the procession of top-order dismissals when he edged a fine Henry delivery that curved away to wicketkeeper Tom Latham.

Kohli fell next, lbw to a superb inswinger from left-armer Boult.

Kohli reviewed but replays upheld English official Richard Illingworth’s original out decision on umpire’s call and, to the despair of the massed ranks of India fans in the ground, the star batsman had to go.

India were then five for three when Rahul was brilliantly caught by a diving Latham after edging Henry.

At that stage, India, two-time world champions, had lost three wickets for one run in 10 balls against 2015 runners-up New Zealand.

Hardik Pandya struck Henry for an elegant backfoot four through the offside.

But the ongoing pressure exerted by the Black Caps told again in the 23rd over when Rishabh Pant holed out for 32 when he was caught at deep midwicket by Colin de Grandhomme following a lofted sweep off Santner.

His exit left India 71 for five and brought in Dhoni, 38 on Sunday, with India hoping he had one more rescue mission left in him.

But they suffered another setback when Pandya, slogging across the line, skyed Santner to New Zealand captain Kane Williamson at midwicket.

Earlier, New Zealand added 28 runs in the remaining 23 balls of their innings to finish on 239-8 after rain had stopped play on Tuesday.

Ross Taylor, who resumed on 67 not out, top-scored with 74 after Williamson had made a masterly 67 in awkward conditions.

Williamson’s side came into a match against India, who finished top of the group table, on the back of three straight defeats by Pakistan, Australia and England.

Bhuvneshwar Kumar finished with three for 43.

Wednesday’s winners will face either hosts England or reigning champions Australia, in Sunday’s final at Lord’s.