None of the Canterbury bowlers were safe as they were all dispatched to the boundary at a quick rate of knots and Ryan McCone grabbed two wickets, but his three overs disappeared for 42 runs.
In pursuit of 197 for victory, Canterbury got off to a flying start as the in-form George Worker and part-time international Tom Latham added 80 runs for the second wicket.
When Worker was sent on his way for 47 Canterbury were 99-2 from 9.2 overs and were right in the hunt, but Otago's bowlers did just enough to stop the run flow.
Import Gareth Andrew hammered a rapid-fire 37 from only 19 balls but wickets to Otago seamers Jacob Duffy, Ian Butler and ten Doeschate at key times held back Canterbury's momentum.
Eventually it was down to No 8 Logan van Beek needing four from the final ball but he and batting partner Matt Henry could only scamper through for two runs and Otago held on for victory.
Butler finished with 2-36 from his four overs, while opening bowler James Fuller was economical as he bagged 1-21 from four overs and he also gobbled up three catches.
The result left Canterbury without a win from their first four games.
Auckland and Wellington meet in tomorrow night's match at Eden Park.