McCullum, man of the match for his unbeaten 69 from 55 balls, skied a single off Irfan Pathan's last delivery to break a deadlock.
The scrambled run thwarted Pathan's late bid to single-handedly drag the tourists into a contest that appeared beyond them after scoring 149 for six.
Pathan switched roles from whipping boy to potential hero when he removed Ross Taylor and Jacob Oram in consecutive balls in the 18th over to raise the possibility of a spectacular home-side collapse.
New Zealand had eight wickets in hand when needing 28 off the last 18 balls, but the double breakthrough - and Neil Broom's demise when he was caught by Pathan off Yuvraj Singh in the penultimate over - left the game in the balance.
New Zealand needed 12 off the final over and the odds tipped in India's favour when McCullum's brother Nathan squirted a leg bye off the first ball.
The vice-captain then ran a single before regaining the strike and hitting the fourth and fifth balls to the fence.
With an elimination over looming, McCullum sliced the ball over a despairing Rohit Sharma as Pathan slumped.
McCullum, who marshalled New Zealand's seven-wicket success in Christchurch on Wednesday with an unbeaten 53, struck eight boundaries and a solitary six - to get off the mark against Pathan.
Earlier, Pathan was collared for 18 off his second over as Jesse Ryder and McCullum amassed 33 off three overs.
Zaheer Khan ended a 53-run opening stand in the fifth over when he clipped Ryder's (26) off stump.
Harbhajan Singh further stunted New Zealand's progress when he removed Martin Guptill leg before wicket for 10, despite the ball clipping an edge.
Guptill's departure at 69 for two in the ninth dovetailed with a relative lull as Harbhajan (one for 15) and fellow spinner Ravindra Jadeja (none for 21) applied the brakes.
Asked to bat first, India produced almost a mirror image of the high-risk approach employed in game one as Virender Sehwag continued his torment of Tim Southee.
Fresh from clubbing three consecutive sixes in game one, the opener took a trio of boundaries off the pace bowler.
But his damage was again limited when Iain O'Brien had him mistiming to New Zealand skipper Daniel Vettori at mid-off in the next over.
Sehwag's five-boundary 24 took just 11 balls and six deliveries later Suresh Raina was snaffled by Southee at mid-on for a duck when swinging Ian Butler across the line.
Yuvraj Singh made the most of a let-off on 11, when Neil Broom dropped a skier, to bring up a half-century, along the way sharing in a 45-run stand with captain Mahendra Singh Dhoni.
The pair succeeded in conserving wickets to the midway point of the innings but were well contained by Vettori (one for 21) and Jesse Ryder (none for 18).
Yuvraj finished with a flurry - taking consecutive sixes off Vettori - but his demise in the 13th over with the score at 92 was swiftly followed by Yusuf Pathan's when he was bowled by Vettori for a two-ball duck.
The New Zealand skipper admitted experiencing some anxious moments before McCullum's back-to-back boundaries in the last over.
"Because we got ourselves in such a great position early on and then we paced it really well, you expect to win from those situations."
Dhoni was not too perturbed by the result.
"There would have been more joy for us if we'd won.
"Losing Yuvraj was critical, but I'm happy with the way the spinners bowled."