India beat New Zealand by 44 runs to set up rerun of the Cricket World Cup final against Australia in last four.