They were seven wickets down when victory came on the third morning of the four-day game, thanks to Kieron Noema-Barnett and Kruger van Wyk, and they lifted the side to third on the Plunket Shield table.
They met in the middle when CD were 27-7 after Graeme Aldridge cut a swathe through the middle-order after Scott Kuggeleijn had done the damage on the second evening. Aldridge took 4-20 while Kuggeleijn had 3-33.
In Wellington, Auckland resumed at 280-7 but a commanding innings by Bruce Martin, who saw 57 added for the eighth wicket with Michael Bates (22) and 62 with Lockie Ferguson who hung around for 80 minutes to finish unbeaten on seven, allowed the sides to finish their first innings' tied on 399.
Martin scored 79 in six minutes over three hours while the wickets were spread around among the attack with Brent Arnel taking 2-64, Mark Gillespie 2-77, Luke Woodcock 2-26 and Jeetan Patel 2-86.
Wellington in reply saw Stephen Murdoch score 63 at the top of the order and by stumps they were 162-2 with Grant Elliott 59 not out while James Franklin was 16 not out.
In Dunedin Canterbury resumed their second innings at 180-6. Rob Nicol had been unbeaten and batted through the Canterbury innings on Saturday to be last man dismissed for 95. Andrew Ellis contributed 23 and Ryan McCone was 27 not out as Canterbury were dismissed for 298.
Sam Wells took 5-74 for Otago and Mark Craig 3-55.
That left Otago needing 379 for victory and Hamish Rutherford took the chance to score 96 off 98 balls before he was caught and bowled by Todd Astle while Michael Bracewell scored 65 before being bowled by Ellis.
Neil Broom ended the day on 48 not out while Wells was 19 not out with the side 245-3. Ellis had 2-34.