The Stormers were made to work very hard for a 16-14 Super Rugby win over the Cheetahs at Newlands in Cape Town on Saturday.
After being outplayed in the first half, the Cheetahs launched a thrilling comeback to eventually outscore their hosts two tries to one.
The Stormers led 16-0 at the interval thanks to a try from lock Eben Etzebeth and the ever-accurate boot of fly-half Peter Grant.
But the Cheetahs bounced back in the second period via tries from Hennie Daniller and Willie le Roux to narrow the gap to just two points deep into the final quarter.
The home defence held firm in the closing stages however as the Stormers maintained their unbeaten record at Newlands this year.
The result leaves the Stormers in fourth place in the overall standings and second in the South African conference, one point behind the tournament leaders the Bulls.
Coach Allister Coetzee will be far from happy with his team's performance though. To make matters worse, the back-row crisis in Cape Town deepened after number eight Nizaam Carr was forced off with a knee injury in the first half.
Both teams can also expect a call from the citing commissioner after a mass brawl in the second half tainted what had been an entertaining game.
The Stormers will host the Waratahs next week and the Cheetahs will host the Sharks in Bloemfontein.
Pens: Grant 3
Tries: Daniller, le Roux
Cons: Smit 2
Yellow card: Elstadt (Stormers - 55th min - foul play)
Stormers: 15 Joe Pietersen, 14 Gio Aplon, 13 Juan de Jongh, 12 Jean de Villiers, 11 Bryan Habana, 10 Peter Grant, 9 Dewaldt Duvenage, 8 Nizaam Carr, 7 Rynhardt Elstadt, 6 Siya Kolisi, 5 Andries Bekker (c), 4 Eben Etzebeth, 3 Brok Harris, 2 Deon Fourie, 1 Steven Kitshoff.
Replacements: 16 Tiaan Liebenberg, 17 Frans Malherbe, 18 De Kock Steenkamp, 19 Jebb Sinclair, 20 Louis Schreuder, 21 Burton Francis, 22 Gerhard van den Heever.
Cheetahs: 15 Hennie Daniller, 14 Cameron Jacobs, 13 Robert Ebersohn, 12 Andries Strauss, 11 Willie le Roux, 10 Sias Ebersohn, 9 Piet van Zyl, 8 Philip van der Walt, 7 Justin Downey, 6 Heinrich Brüssow, 5 Izak van der Westhuizen, 4 George Earle, 3 WP Nel, 2 Adriaan Strauss (c), 1 Coenie Oosthuizen.
Replacements: 16 Hercu Liebenberg, 17 Trevor Nyakane, 18 Andries Ferreira, 19 Ashley Johnson, 20 Tewis de Bruyn, 21 Riaan Smit, 22 Philip Snyman.