Craig took three wickets after lunch, including two in two balls, to help complete a remarkable turnaround for the hosts, who had looked likely to lose the game inside three days at one point.
“That’s the beauty about this team, all the boys chip in and shows when we put it all together what we can do,” Craig told RadioSport of the team’s fightback from a seemingly impossible position on the third day.
“I think the way we played in Christchurch and followed up here was awesome, so two very good wins.”
Lahiru Thirimanne was left not out 62, while Nuwan Pradeep was bowled by Tim Southee for one as the visitors were dismissed for 196.
Sri Lanka had resumed on 110 for five after lunch but had given up any pretence of chasing the 390 runs they needed to win the game and level the series with survival uppermost on their minds.
Craig, however, managed to tempt a loose shot from Prasanna Jayawardene, who slapped the ball to Kane Williamson at cover for 10, then had Dinesh Chandimal caught behind by BJ Watling for 13.
The off-spinner trapped Rangana Herath lbw on the next ball and while Suranga Lakmal saw off the hat-trick delivery Sri Lanka’s resistance was virtually over at 156 for eight.
Trent Boult and Doug Bracewell had earlier ripped through the top of Sri Lanka’s innings in the first session, aided by some superb catching in the slips cordon.
Boult removed nightwatchman Dhammika Prasad (six) and Kumar Sangakkara (five) in quick succession early in the session before Bracewell struck twice shortly before lunch.
The recalled seamer removed opener Kaushal Silva, who had just scored his seventh test half century but was then caught by Craig in the slips, before Angelo Mathews was caught for eight by Williamson in the gully. (Reuters)