McCullum was on 281, his highest test score and the second highest by a New Zealander, at the close of play after having shared a world record stand for the sixth wicket with wicketkeeper BJ Watling who was dismissed for 124 in the third over after tea.
Debutant Jimmy Neesham was on 67 at the close of play with the hosts on 571 for six, a lead of 325 runs and seemingly in a position where they cannot lose the match and series with a day's play remaining.
New Zealand had won the first test at Eden Park by 40 runs and India had needed to win the game to level the two-match series.
"It has been a great day," an exhausted McCullum told Radio Sport. "Today I thought BJ and myself were able to put ourselves in a really strong position.
"The way Neesh came in and we created that partnership we are really pleased with where we are and we have to make some decisions overnight."
McCullum was within sight of Martin Crowe's New Zealand best score of 299, set against Sri Lanka at the same ground in 1991 and could become the first New Zealand player to score a triple century if he continues to bat on the final day on Tuesday.
McCullum and Watling had continued their resurrection of New Zealand's innings having been thrust together at 94 for five and in danger of losing the game inside three days.
Instead, they combined for a 352-run partnership, a world record for the sixth wicket, surpassing the 351 that Sri Lankan duo Mahela and Prasanna Jayawardene scored against India in 2009.
It was also the third highest by any New Zealand combination in test cricket.
Andrew Jones and Crowe hold the highest partnership for New Zealand after they scored a then-world record of 467 against Sri Lanka in 1991 at the Basin Reserve.
Watling, however, fell six balls after they set the world record on the second delivery of the third new ball when he was trapped in front by Mohammed Shami for 124, ending his 367-ball, 510-minute stay.
McCullum, who scored 224 in the first test at Eden Park, is the second New Zealand batsman after Stephen Fleming to have scored three test double-centuries.
All of McCullum's have come against India, his first a 225 in 2010.
McCullum and Watling came together shortly after lunch on Sunday, still 152 runs from making the visitors bat again.
The naturally aggressive McCullum curbed his attacking instincts and battled problems with his shoulder and troublesome back in taking his side to a six-run lead at stumps on Sunday.
They guided New Zealand to 440 for five at tea, having notched up milestone after milestone throughout the day with the ground announcer seemingly making a new announcement every five minutes.
Watling, who had brought up his ton when he clipped a Zaheer Khan half-volley off his legs to the midwicket fence after lunch, moved through to 124 before India took the third new ball.
Shami had a loud appeal turned down on the first delivery but was successful on the next, with Watling banging the ground with his bat and slowly walking off looking like a man who had failed to score rather than one who had potentially helped save the match for his team.
McCullum brought up his 250 with his third six and then took a minor role in his flourishing partnership with Neesham, which was worth 125 by the end of the day.
"The last hour was a bit of a daze in all honesty and I was just trying to get through," McCullum said.
"Thankfully Neesh was playing some shots in and ticking the board over because I was just hanging in there if I'm brutally honest."
- Sports & Recreation
- New Zealand