Bay of Plenty led 20-14 at the break but Otago took its chances which came along in the second half to run out the winners.
Josh Ioane did not miss a kick in a fine individual performance, scoring 25 points.
Otago 45 (Matt Faddes 2, Vilimoni Koroi 2, Josh Ioane 2 tries; Ioane 6 con, pen)
Bay of Plenty 34 (Bailey Simonsson, Kaleb Trask, Tom Croziier, Aaron Carroll tries; penalty try, Kaleb Trask con, pen; Reece Macdonald con)
Halftime: 20-14 Bay of Plenty