Madosh Tambwe scores two tries as Bulls beat Stormers for second successive win
Evan Roos replied for the Stormers, with Damian Willemse adding the extras, before an Abner van Reenen penalty put the home side in front.
The Stormers then had captain Steven Kitshoff shown a yellow card for leading with the forearm and the Bulls capitalised as Tambwe ran in unchallenged after the hooter had sound and Steyn converted.
After the break, Steyn and Van Reenan traded penalties before Chris Smith made it 20-13 to the Bulls with another penalty.
Van Reenan reduced the deficit to four points but, despite the Bulls having Nizaam Carr yellow-carded with nine minutes left for a high tackle, the Stormers were unable to take advantage.
Sign up to our mailing list for a weekly digest from the wide world of rugby.Sign Up Now