The Dunedin forwards got on top in the second spell at Bishopscourt, when experienced prop Kelsey Miller came on to the paddock and settled the scrum.
An aggressive Kaikorai pack had pressured Dunedin in the first spell and had the edge in the scrums though the skill of prop Jim Stevenson.
Winger Dan Hyndman always looked dangerous with the ball and made the break for the first try, scored by fellow winger Bryce Morgan.
It took time for the Dunedin forwards to get their pick-and-go into action but near the end of the spell they put four phases together and then spread the ball wide.
Fullback Liam Edwards joined the line and used his pace to score the try.
Dunedin led 10-8 at halftime.
Dunedin had a steadier scrum in the second spell and was able to control the game.
It made inroads into Kaikorai territory through the skilled play of hooker Sam Anderson-Heather and the aggressive driving of flanker Gareth Evans.
Evans played a dominant role around the breakdown, while his opposite, Adam Hill, grabbed five turnovers for Kaikorai at the breakdown.
The Kaikorai defence held but winger Pera Gibbs kicked three penalty goals to win the game for Dunedin.
Dunedin 19 (Liam Edwards try; Edwards con, pen, Pera Gibbs 3 pen), Kaikorai 11 (Bryce Morgan try; Cam Rutherford 2 pen). Halftime: Dunedin 10-8.