The start of match was delayed for more than an hour after a torrential storm swept over the venue, and when the contest was eventually given the go-ahead to start the pitch conditions was difficult to negotiate for the players.
As expected, there were plenty of handling errors from both teams as the ball was like a bar of soap and there was only penalties to show on the scoreboard in the first half.
Jurie Matthee kicked four penalties while David Kriel struck three of his own for the home team as the Stormers took a 12-9 lead into the halftime break.
The Bulls took the initiative after the interval and substitute forward Ruan Vermaak went over for the first try of the game with 20 minutes remaining with Kriel adding the extras to give the hosts a 16-12 advantage.
The men from the Cape were always in the contest though and hit back 10 minutes later when Wandisile Simelane regathered a kick to sprint over clear for a try for the visitors to regain the lead.
The home side pressed for the winner in the closing stages but the Stormers held on for a victory that will no doubt reignite their hopes in this season's URC.