The defending champion will head to Christchurch to play Canterbury in tomorrow’s final.
The Brave will be tough to beat too.
Northern made 199 for four from 18 overs.
The target had to be recalculated after another shower swept away more time.
The Volts ended up chasing 177 from 15 overs and that proved too many.
Otago captain Hamish Rutherford was injured just prior to the warm-up and was not able to play. That had a big impact.
Opener Jake Gibson perished early. That did not help either.
Dean Foxcroft holed out for a hard-hit 39. Another major blow.
But the difference was Northern’s openers Katene Clarke and Tim Seifert put on a punishing 105-run stand from 8.2 overs.
The Volts clawed back some late momentum with the ball.
But the pressure of having to score close to 12 an over was too great.
The Volts kept battling and pummelled 22 off the 10th over to leave the home team needing 63 off the last five overs.
Josh Finnie blasted 43 from 22 and looked like he might carry the Volts to an unlikely win.
But three wickets tumbled in the last over and Otago was restricted to 160 for nine.
Northern won by 16 runs via the Duckworth/Lewis/Stern method.
Volts coach Dion Ebrahim said losing Rutherford was far from ideal, but he was pleased with the character his side showed.
Foxcroft captained in Rutherford’s absence.
"It was something we had to adapt to and quickly move on from. But obviously it was a big loss," Ebrahim said.
"But we had good cover and were able to stay focused.
"That reluctance to give up has been a trademark of the whole campaign and that has been great. That’s growth from last season."
Openers Clarke and Seifert seized the initiative early.
They combined to whack 15 off the second over.
The conditions were not great for bowling. It was chilly and the players were on and off for rain. The ball was slippery and there was no swing at all.
Clarke was swinging though. He dispatched Michael Rae on to the embankment and ramped another for six.
Northern had collected another 17 runs and the visiting side kept the pressure on the throttle.
Matt Bacon watched as Clarke smacked him over extra cover for another six.
Seifert sent another in that direction. It bounced once before crossing the rope.
Add another 16 to the total.
The final over of the powerplay brought more pain. Seifert cleared his hip and lofted Duffy back over his head for six just before another rain interruption.
The reprieve was short-lived. The pair resumed the onslaught 10 minutes later.
Northern was 85 without loss at the end of the powerplay and on target for 200-plus.
Clarke swept Michael Rippon for a boundary to bring up his 50 from just 24 balls. The shot also brought up the 100-run partnership from 45 balls.
Seifert’s fine knock ended when he tried to swing away a delivery from Ben Lockrose, but was bowled for 42 from just 23 deliveries.
It took a sensational catch from Dale Phillips out in the deep to remove Clarke.
He took a one-handed effort with both feet at least a metre above the ground. Unbelievable. And still unbelievable after watching the replay several times.
The over ended four, four, six, though. That was Brett Hampton on his way to 44 from 23 balls.
Otago snuck through some relatively cheap overs at the end to prevent Northern reaching 200.
Neil Wagner took three for 30 and Tim Pringle and Hampton nabbed two apiece. Pringle was frugal too. It was a fine bowling display by the left-arm spinner.