Fiji stunned New Zealand to reach the Rugby League World Cup semi-finals after a 4-2 win in an error-filled clash in Wellington.

Both teams squandered numerous opportunities in the quarter-final, but Fiji deserved their victory in what was the equal lowest scoring game in World Cup history.

Penalties from Apisai Koroisau and Taane Milne – one in either half – secured Fiji's triumph and a semi-final meeting with Australia.

New Zealand, coming off a shock group-stage loss to Tonga that sent them to the tougher side of the draw, were lucky not to fall further behind early.

The Kiwis lacked discipline and made several mistakes, completing just five of their first 10 sets.

Fiji almost crossed in the fifth minute, but Brayden Wiliame lost the ball trying to get it down.

All Fiji had to show for their first-half dominance was Koroisau's penalty in the 14th minute as they took a 2-0 lead into the break.

New Zealand quickly levelled the scores in the second half thanks to Shaun Johnson before surviving 10 minutes with a man down after Jordan Rapana was sin-binned for a professional foul.

Wiliame was denied for a second time in the game, this time due to a double movement after a short pass from Jarryd Hayne.

Fiji took another two points through Milne to restore their lead and then held on for a memorable victory.