The Scarlets capitalized on a controversial red card for Johan Grobbelaar to secure a morale-boosting 23-22 win over the dominant Bulls.
Despite failing to capitalize on their overwhelming share of possession and territory, the Bulls led for most of the game until Grobbelaar was sent off, paving the way for Tom Rogers to score the winning try.
Josh Macleod and Blair Murray also crossed for the Scarlets, with Ioan Lloyd adding two penalties and a conversion.
Canan Moodie, Zak Burger and Kurt-Lee Arendse scored tries for the Bulls, with Boeta Chamberlain scoring one penalty and converting two.
The visitors needed just 70 seconds to take the lead with a flowing move that culminated in a try from Moodie.
Helped by the award of a few penalties in their favour, the home side soon responded as captain Macleod forced his way through from close range.
However, the flanker quickly conceded a penalty for a high tackle and the South Africans immediately capitalized as the harried half-burger evaded a mole to score, with the home defense strangely absent.
The Bulls extended their lead when Moodie was brought down just before the line after a strong run. The center lost possession, Arendse picked up the loose ball to land it and TMO replays showed the ball had gone backwards so the attempt stood.
Chamberlain converted before Lloyd responded with a penalty to give the Bulls a deserved 19-10 half-time lead.
Two minutes after the break the Scarlets got back into the game when Murray raced through the opposition lines after a lovely pass from Lloyd and scored a superb individual try.
Chamberlain responded with a penalty before the Scarlets brought on Sam Costelow, with Lloyd moving from full-back to full-back in place of Ioan Nicholas.
Lloyd scored a second penalty to leave his side four points behind heading into the final quarter before Bulls substitute Grobbelaar was harshly sent off for a harsh challenge on Marnus van der Merwe.
And the Scarlets took advantage when Rogers slipped past three defenders with nine minutes to play to give his team the lead for the first time.