Competition leaders the Hurricanes have been forced to dig deep to hold out the Stormers 25-20 in Wellington and extend their winning start to the Super Rugby season to seven matches.
Down 25-3, the Stormers monopolised territory and possession in the second spell on Friday night and, with skipper Duane Vermeulen leading from the front, they ran the ball back hard at the Hurricanes.
The South Africans began their comeback in the 48th minute when their dominant scrum forced a Hurricanes collapse that led to a penalty try.
They closed the gap further with 15 minutes to go.
Vermeulen produced a big run and, 15 phases later, the No.8 came up with the offload for centre Huw Jones to touch down.
Demetri Catrikilis landed the sideline conversion and, when Kurt Coleman added a long-range penalty, it was a five-point ball game.
But the Hurricanes were able to hang on for the last six minutes to mark inside centre Ma’a Nonu’s personal milestone with a victory.
Nonu was making his 150th Super Rugby appearance, the most by a back.
At the other end of the experience scale, rookie fullback Nehe Milner-Skudder added to his reputation as a player to watch as the home side built up their big first-half lead.
The only non-All Black among the Hurricanes’ starting backs, Milner-Skudder repeatedly breached the defensive line with his slick footwork.
He also scored the home side’s first try, off a deft cross-kick by five-eighth Beauden Barrett.
He created the second for winger Julian Savea when he made another incursion through the Stormers’ defence.
The Hurricanes’ confidence was on show just out from the interval, when they produced a length-of-the-field break.
Flanker Brad Shields and Nonu were prominent in the move, which ended in a try for Barrett.