Nicolas Sanchez, captain Pablo Matera and Gonzalo Bertranou scored tries, two of them converted, to open up a 19-0 advantage for the visiting Jaguares inside the opening 20 minutes at Loftus Versfeld Stadium.
Roused into action, Bulls responded emphatically.
Bertranou touched down again in the 46th minute and Sanchez slotted the conversion, but a brace of tries from Jamba Ulengo – together with a score from Marco van Staden – afforded the hosts a degree of comfort.
And Matera’s second try of the match arrived too late for the Argentine side to close the gap, as their seven-match winning streak came to an end.
After Robert du Preez kicked three penalties before the break to keep the visitors in touch, Kobus van Wyk ran in a 43rd-minute try, which fly-half Du Preez converted.
But two late Joshua Stander penalties made the result safe for Stormers.
In other news:
Sign up to our mailing list here and we’ll keep you up to the minute with weekly updates from the world of rugby.