The first half was one-way traffic as the Stormers cruised into a 16-0 half-time lead.
Flyhalf Peter Grant kicked three penalties in the first 16 minutes as the Cheetahs’ repeated infringements caught the eye of referee Steve Walsh and, after concerted pressure inside the opposition 22, lock Eben Etzebeth then muscled his way through three defenders to score the Stormers only try, in the 24th minute.
The Cheetahs came out inspired in the second half and a series of top-class drives by their forwards took them deep into the Stormers’ 22, where a slick pass by wing Willie le Roux allowed fullback Hennie Daniller to score in the corner.
Replacement flyhalf Riaan Smit kicked a fine conversion from the touchline to close the gap to 7-16 after 48 minutes.
Stormers flank Rynardt Elstadt then received a yellow card for a knee to the back of the head of Cheetahs wing Cameron Jacobs and a massive brawl then broke out between both teams, with a white card being issued for further investigation.
The Stormers defence held true, however, as the Cheetahs bombarded their line through 26 phases without reward.
Ironically, the visitors did score a second try in the 66th minute, but it came from deep within their own territory.
Right wing Gio Aplon sparked one of the Stormers’ few second-half attacks but, when scrumhalf Dewaldt Duvenhage tried to pass to him again from a ruck, Le Roux pounced for the intercept and sprinted clear for a try from 90 metres out.
The accurate boot of Smit once again succeeded with the touchline conversion (16-14), but the Stormers prevented any further damage on the scoreboard and held on for a win that keeps them just one point behind the Bulls at the top of the South African Conference.
Stormers – Try: Eben Etzebeth. Conversion: Peter Grant. Penalties: Grant (3).
Cheetahs – Tries: Hennie Daniller, Willie le Roux. Conversions: Riaan Smit (2).