Ruhan Nel scored a last-gasp try as the Stormers pipped the Lions 33-30 at Emirates Airline Park on Saturday.
The Stormers broke a five-year hoodoo against the Lions and made it three wins from three thus far this campaign.
The Lions' tries came from Andries Coetzee, Courtnall Skosan, Elton Jantjies and Dan Kriel, while Juarno Augustus, Godlen Masimla, Sergeal Petersen and Nel got themselves on the try column for the Stormers.
The Lions were looking to speed up the game with quickly-taken lineouts and quick tap free-kicks to negate the Stormers' set-piece strength.
Springbok fly-half Elton Jantjies gave the home side the lead with a penalty right in front after Stormers captain Steven Kitshoff was penalised at the breakdown.
However, it was the Stormers who scored from their first serious assault on the Lions' try-line to take the lead when number eight Augustus muscled his way over from close range after a series of powerful carries from the forwards.
It was a fairly scrappy game with both sides suffering in their execution.
With a quarter of the game gone and the Lions going nowhere on the half-way line, Godlen Masimla made a good interception to show the defence a clean set of heels and dot down in the left-hand corner. Willemse's conversion hit the post and bounced back with the visitors' lead remaining at 12-3.
The Lions suddenly upped the ante on attack and gained some good front-foot momentum with Len Massyn showing deft sleight of hand to offload to Coetzee while managing to keep himself within the field of play for the Lions full-back to dot down in the right-hand corner and cut the deficit to four at 12-8.
The home side continued to dominate and got their second try to take the lead through some brilliance from their captain Jantjies, who produced an expertly-weighted cross-kick for Skosan to complete a simple finish in the left-hand corner after setting up an attacking lineout on the right-hand side - with the decision not to take the three points vindicated.
The Stormers won a crucial scrum penalty four minutes from half-time right in front of the Lions' posts with Willemse doing the rest to level matters at 15-15.
And the Stormers number ten added another three-pointer after the hooter to give the hosts a slender 18-15 lead going in to the interval.
The visitors made a dream start to the second half. It was a brilliant read from Willemse, who changed direction from centre field. The ball was efficiently spread to the wing where Augustus produced a one-handed offload for Petersen to beat the last defender and cross the whitewash for a superb team try.
Willemse extended the lead to 26-15 after Kitshoff did heroic work at the breakdown oncce again, getting himself over the ball and securing the turnover for his side.
It was over 20 minutes before the next points were scored with the home side scoring a crucial try to bring themselves right back in to the contest. Jantjies attacked the gainline in characteristic fashion running flat on to the ball to break through and dot down under the posts as he converted to make the difference just four points at 26-22.
And it was centre Manuel Rass, who produced the moment of magic to put the Lions back in to the lead when he got in between two defenders and produced a beautiful offload out the back of the hand for Hajcivah Dayimani to throw the final pass for Kriel to finish it up and claim his maiden Super Rugby try.
Jantjies slotted a penalty four minutes from time which looked to have sealed the victory for the hosts but in a dramatic twist of events, the Stormers scored a sensational team try with Nel dotting down at the end of it to snatch victory from the jaws of defeat and break the Ellis Park faithful's hearts.
Lions - Tries: Coetzee, Skosan, Jantjies, Kriel. Cons: Jantjies (2). Pens: Jantjies (2).
Stormers - Tries: Augustus, Masimla, Petersen, Nel. Cons: Willemse (2). Pens: Willemse (3).
Lions: 15 Andries Coetzee, 14 Tyrone Green, 13 Manuel Rass, 12 Dan Kriel, 11 Courtnall Skosan, 10 Elton Jantjies (c), 9 Morne van den Berg, 8 Len Massyn, 7 Vincent Tshituka, 6 Marnus Schoeman, 5 Marvin Orie, 4 Ruben Schoeman, 3 Jannie du Plessis, 2 Pieter Jansen, 1 Dylan Smith
Replacements: 16 Jan-Henning Campher, 17 Sti Sithole, 18 Carlu Sadie, 19 Wilhelm van der Sluys, 20 Willem Alberts/Ruan Vermaak, 21 Hacjivah Dayimani, 22 Dillon Smit, 23 Wandisile Simelane
Stormers: 15 Dillyn Leyds, 14 Sergeal Petersen, 13 Ruhan Nel, 12 Jamie Roberts, 11 Seabelo Senatla, 10 Damian Willemse, 9 Godlen Masimla, 8 Juarno Augustus, 7 Pieter-Steph du Toit, 6 Johan du Toit, 5 Chris van Zyl, 4 Salmaan Moerat, 3 Wilco Louw, 2 Scarra Ntubeni, 1 Steven Kitshoff (c)
Replacements: 16 Chad Solomon, 17 Ali Vermaak, 18 Frans Malherbe, 19 JD Schickerling, 20 Cobus Wiese, 21 Ernst van Rhyn, 22 Paul de Wet, 23 Jean-Luc du Plessis
Referee: Jaco Peyper (South Africa)
Assistant referees: Marius van der Westhuizen (South Africa), Rasta Rasivhenge (South Africa)
Television match official: Willie Vos (South Africa)