The passionate Stormers playing in front of their partisan home crowd at Newlands raced to what proved to be a match winning 20-point advantage when hooker Schalk Brits finished off a long-range counterattacking movement against the run of play in the 52nd minute.
From there the Hurricanes successfully hit back with two tries of their own to close the gap right back up with more than 15 minutes remaining. But the Stormers dug deep on defence and their resolute tackling was able to weather several further Hurricanes raids, which was ultimately the difference between the two sides.
The Hurricanes scored tries to right wing Hosea Gear in the 55th minute and centre Conrad Smith in the 63rd minute, Gear planting the ball down next to the corner flag off a blindside scrum movement and Smith crashing over from close range after some excellent driving play near the line by the forwards.
Evoking memories of their 23-19 come-from-behind win over the Stormers at the same venue two year ago, the Hurricanes went close with several other opportunities, but on this occasion couldn't breach a consistent wall of blue jerseys.
Earlier The Stormers led the Hurricanes 10-0 at the end of a hard-fought first half, a penalty to first five-eighth Peter Grant and a 34th minute try to lock Andries Bekker separating the sides.
Bekker's try came after a period of Stormers pressure inside the Hurricanes' 22, the home side using their forwards in a series of drives at the tryline from a lineout penalty and Bekker was awarded a try.
Despite the low scoring, the contest had started off at a frantic pace between two sides who had each run in bonus point tries well inside the first half in their previous matches.
Both the Hurricanes and the Stormers endeavoured to keep the ball alive as much as possible, although it was from the scrum where the Hurricanes created their clearest chance of the first 40 minutes through halfback Piri Weepu. Sniping short side from the set piece, Weepu was unlucky to knock on as he regathered his own chip and chase over the tryline.
The Stormers got on the scoreboard again early after halftime when first five-eighth Peter Grant kick kicked his second penalty to put his side ahead 13-0 after 42 minutes.
They then made it 20-0 when Brits scored, after the Stormers had counterattacked from their halfway line and kept the ball alive through several sets of hands.
The Hurricanes were unfortunate not to score a try soon after when a pass from replacement flanker Scott Waldrom put prop Neemia Tialata into space up the touchline. A no-arms tackle bundled Tialata into touch and the Hurricanes were awarded a penalty.
From an attacking scrum moments later, they shifted their avenue of attack back towards the same touchline and Weepu threw a skip out pass across to Gear on the right wing. Gear then did exceptionally well to keep bump off his defender and keep himself in play to score the try.
First five-eighth Jimmy Gopperth converted from the sideline and the deficit was closed to 20-7.
Gopperth then missed with a penalty attempt, before Smith scored his try after a series of pick-and-goes from the forwards and he crossed the tryline from close range off a pop pass by Gopperth.
The remainder of the match was a tense affair, the Hurricanes' cause not helped by a move to uncontested scrums due to injuries in the Stormers front row.
The Hurricanes remain in South Africa for one more game against the Cheetahs in Kimberley next week.
The Hurricanes became the 4th New Zealand side to play 150 Super matches. (The Highlanders also played their 150th Super match this round but beat the Hurricanes to the milestone by two hours). The Hurricanes' overall record is won 75, lost 72, drawn 3. So they have won exactly 50% of their matches.
Zac Guildford became the 142nd player to make his appearance for the Hurricanes in a Super rugby match. At 19 years and 71 days he is the youngest ever beating the previous record holder Christian Cullen who was just short of three weeks past his 20th birthday when he made his debut.
The opposition side has scored 20 points in all three matches lost by the Hurricanes this year.
At Newlands in Cape Town: Stormers 20 (Andries Bekker, Schalk Brits tries, Peter Grant 2 con, 2 pen), Hurricanes 12 (Hosea Gear, Conrad Smith tries; Jimmy Gopperth con) HT Stormers 10-0.
The scoring action (by minute):
23rd: Peter Grant penalty. Stormers 3-0
34th: Andries Bekker try. Stormers 8-0
35th: Grant conversion. Stormers 10-0
42nd: Grant penalty. Stormers 13-0
52nd: Schalk Brits try. Stormers 18-0
53rd: Grant conversion. Stormers 20-0
55th: Hosea Gear try. Stormers 20-5
56th: Jimmy Gopperth conversion. Stormers 20-7.
63rd: Conrad Smith try. Stormers 20-12.
The Hurricanes team who played the Stormers was:
15 Cory Jane, 14 Hosea Gear, 13 Conrad Smith, 12 Ma'a Nonu, 11 Shannon Paku, 10 Jimmy Gopperth, 9 Piri Weepu; 8 Rodney So'oialo (c), 7 Chris Masoe, 6 Jerry Collins, 5 Craig Clarke 4 Jeremy Thrush, 3 Neemia Tialata, 2 Andrew Hore, 1 John Schwalger. 16 Hikawera Elliot, 17 Tim Fairbrother, 18 Bernie Upton, 19 Scott Waldrom, 20 Willie Ripia, 21 Tane Tu'ipulotu, 22 Zac Guildford.
41st: Scott Waldrom (19) for Jerry Collins (6)
50th: Tim Fairbrother (17) for John Schwalger (1)
54th: Zac Guildford (22) for Shannon Paku (11)
57th: Bernie Upton (18) for Craig Clarke (5)
66th: Tane Tu'ipulotu (21) for Conrad Smith (13)
68th: Hika Elliot (16) for Neemia Tialata (3)
71st: Willie Ripia (21) for Jimmy Gopperth (10)
Hurricanes debut: Guildford.