The Black Caps right-hander smashed seven sixes and three fours in a wonderful innings of 90 from 43 balls.
He combined in a 116-run stand with Craig Cumming for the fifth wicket to help Otago post a competitive total of 293 for five, and then chipped in with two for 37 from his 10 overs as Northern fell a few runs short of the target.
Spare a thought for Anton Devcich. The all-rounder got his side back into the match with an undefeated 101 from 103 balls. But he could not find the boundary when Northern needed it most.
So while he got to celebrate his maiden one-day hundred, he probably had some explaining to do once he got back to the dressing room.
But for McCullum it was the perfect warm-up for the one-day international against Zimbabwe in Dunedin on Friday.
McCullum went into the match in pretty good touch, having already scored two one-day 50s this summer. But he improved on those performance with some devastating hitting.
Cumming, who was also batting nicely and remained undefeated on 85, quickly realised it was McCullum's day and skilfully manipulated the strike.
He pushed the ball into gaps and scampered down the other end to watch as McCullum continued the onslaught.
Former Black Cap Brent Arnel and medium pacer Brandon Hiini came in for some brutal treatment.
McCullum hit out in the last over, falling 10 runs short of what would have been his maiden one-day century.
Earlier, Michael Bracewell scored his second one-day 50 and Darren Broom chipped in with 25.
Aaron Redmond's lean run shows no sign of abating. He was dismissed for seven and has now scored just 23 runs in four innings.
The home side started positively with Hamish Marshall and Brad Wilson adding 52 for the first wicket. But Northern struggled to get a decent partnership together and slumped to 134 for six. All looked lost but Devcich and Hiini certainly had not given up the fight.
The pair added 119 - a Northern Districts record for the seventh wicket, eclipsing the previous mark of 96 scored by Scott Styris and Peter McGlashan against Central Districts in Masterton in 2004-05 - and got their side into a winning position.
Nick Beard got the crucial breakthrough, removing Hiini for 47, and the bold chase began to unravel.
Devcich just could not find boundary as Beard and Jimmy Neesham strung together four tight overs to swing the game back in Otago's favour.
Northern needed 21 off the last two overs and tail-ender Graeme Aldridge hit the third last ball for a boundary to break a run of 10 consecutive singles.
But Neil Wagner kept his cool and restricted Aldridge and then Devcich to singles from the last two deliveries.
The win lifted Otago to 19 points from seven matches and it is in second place with one round-robin match remaining.
In the other games, top-of the table Auckland was beaten by cellar-dwelling Wellington by 102 runs in Auckland yesterday.
Wellington opener Michael Papps's 90 set Wellington on its to a total of 276.
High-flying Canterbury was also beaten yesterday, losing to Central Districts in Rangiora by seven wickets.
A century by opener George Worker enabled Canterbury to reach 291 for five but George Robinson (130 not out) and Matthew Sinclair (123) put on 231 for the third wicket to allow CD to win by seven wickets.
The Australian women's side claimed the Rose Bowl yesterday with a nine-wicket victory over New Zealand in Sydney, AAP reports.
With the first two one-day matches washed out, it all came down to the third and final match to decide who would take home the coveted trophy.