The home side posted 372 to establish a healthy first-innings lead of 173.
The Volts had cut the deficit to 111 by stumps on day two.
But the visitors are two down for 62 and opener Camden Hawkins has retired hurt after taking a blow to the hand.
It is unclear whether he will bat today, so Otago is not in a good spot.
It could have been much, much worse had Duffy not pounced.
Wellington had worked its way to 304 for three but Duffy slammed on the handbrake with an inspired spell of bowling.
The 25-year-old ripped out six for 17 with his first six overs with the second new ball.
It was his eighth first-class five-wicket bag and he had an opportunity to bowl for not one but two hat-tricks.
He could not convert but his spell was no less remarkable.
The Firebirds had resumed on 94 for one in reply to Otago’s first innings tally of 199.
Devon Conway and Rachin Ravindra are arguably Black Caps in the making and the pair got the day off to a safe start.
Ravindra made his first-class debut last season when he played for New Zealand A against Pakistan A last season.
The highly rated 19-year-old left-hander looked to be tracking towards his maiden hundred but was undone in flight by Dean Foxcroft and stumped for 76.
It was a rare reward for Otago’s attack, which struggled early.
Tom Blundell heaped on more misery. He clubbed 82 from 84 balls before Duffy trapped him in front with that new cherry.
Conway, meanwhile, appeared to be inching his way towards his 17th first-class hundred and looked a solid bet to get there.
Duffy got it to jag sideways and bowled the left-hander for 96.
The batsman had every right to leave it but it nipped back and knocked the off stump from its mooring.
Duffy was in business and went to work. His former teammate Jimmy Neesham got a similar delivery.
Neesham tried to keep it out but missed by plenty. Duffy did not miss. And he did not miss with the next ball either.
Logan van Beek went for a duck, putting Duffy on a hat-trick.
That calamity was averted but Duffy got a second opportunity after nicking out Ollie Newton and Ben Sears with consecutive balls.
He had taken six wickets in rapid succession to go with his earlier scalp.
That was just a tad better than Nick Kelly, who had to be replaced at the bowling crease after bowling two waist-high no balls with his only two deliveries. None for 12 from none just looks wrong in the scoreboard but those are his figures.
At Eden Park Outer Oval, Central Districts is 144 for eight in reply to Auckland’s first-innings total of 210, while in Christchurch Northern Districts is 156 for three in reply to Canterbury’s 390. Tim Seifert is 85 not out.