Stormers closed out a 15-13 victory to leapfrog the Bulls at the top of the Super Rugby South African Conference at a sold-out Newlands.
It was the Bulls who scored the only try of the match, through Bjorn Basson, but Demetri Catrakilis' place kicking was assured to keep the hosts' noses just in front.
They were 12-3 up at half-time, thanks to four penalties to one - all kicked by Catrakilis.
His opposite number Handre Pollard got one back for the Blues.
Stormers fly-half Catrakilis opened the scoring after an infringement by Dean Greyling.
They were soon dominating in open play too, and only a last-ditch tackle by Bulls captain Pierre Spies stopped Duane Vermeulen going over for a try.
The Stormers had to make do instead with another Catrakilis penalty, from right in front of the posts, after Greyling collapsed a scrum.
Catrakilis made it 9-0 after 20 minutes - but after the otherwise impressive prop Frans Malherbe was penalised, Pollard reduced the Bulls' arrears.
Stormers centre Juan de Jongh thought he was in for a try, but a forward pass was spotted in the sweeping move, and instead it fell to Catrakilis to extend the lead again.
The Bulls were right back in it at the start of the second half when Francois Hougaard fed his fellow wing Basson for a counter-attacking try - converted by Pollard.
Catrakilis fleetingly restored a five-point lead with his fifth penalty, awarded for off-side, only for Pollard to kick soundly too from a difficult touchline angle to make it 15-13.
The Bulls fly-half missed, just after the hour, when he had a chance to kick his team in front - and in the end, Stormers had enough to hold on for a hard-fought and narrow win which puts them a point in front at the top of the table.