New Zealand reached a second successive Cricket World Cup final thanks to a thrilling 18-run win over India.