Ulster made nine changes to the side that lost out to Emirates Lions last weekend in Johannesburg, with a number of milestones for young players.
James McCormick, Charlie Irvine and Ben Carson all made their first competitive starts for the province, with Tadgh McElroy and James Humphreys named on the bench hoping to make their maiden appearances in a white jersey.
The home side got off to a quick start, winning an early scrum penalty that gave them the chance to kick into Ulster's 22.
From that territory, the Bulls played quickly from another scrum and returning springbok winger, Kurt-Lee Ardense, darted through a gap to dive for the line, stretching to finish. Boeta Chamberlain converted the score.
Ulster then responded quickly with Jacob Stockdale pulling off a superb chip and chase after Aidan Morgan's cross field kick found the big winger out on the left touchline. Nathan Doak converted to level the conetest early on.
The away side then received a punch to gut, with the experienced springbok full-back, Willie Le Roux, showing his quality, delivering a pinpoint cross-field kick to the right winger, Sebastian De Klerk, who then found David Kriel on the support line. Kriel had an easy finish for the Bulls second try. Chamberlain's conversion took the scoreline to 14-7.
The Bulls joy at scrum-time was compounded when Ulster tighthead prop, Corrie Barrett, was shown a yellow card after a scrum penalty.
The Bulls grabbed a third from their powerful maul, with springbok hooker Johan Grobbelaar, finishing off the maul from a 5m lineout. Chamberlain's conversion added the extra two.
Ulster pushed for a score before half-time with a good period of possession, however the move in the red zone was halted for a knock forward.
At half-time, the Bulls lead by 21-7.
With the second half underway, Ulster were back to fifteen on the field again, with Corrie Barrett back on from the sin-bin.
The home side got off to the perfect start for their home supporters after Canan Moodie raced into space for his first try of the match.
The Bulls continued to use their maul weapon effectively, and used another penalty to kick into the Ulster corner.
In a switched up lineout routine, their number eight, Cameron Hanekom, drove the maul over the whitewash for their fifth of the contest.
The Bulls captain, Ruan Nortje, then pounced on a loose ulster pass to burst into the Ulster 22, before fly-half, Boeta Chamberlain, dropped his shoulder and raced through a gap for their sixth try.
Despite the gulf in the scoreline, Ulster showed good grit to stay battling in the fight.
Young centre, Ben Carson, notched his first try in an Ulster jersey, finding space and slipping tackles to score well in the right corner, on what was his first start for the province.
Fly-half, James Humphreys, making his debut for his province, converted the score with an excellent conversion from the right hand side.
Ulster then scored a third in quick succession, with Dave Shanahan combing with Mike Lowry on the left wing. Lowry then drew the defender in and timed a perfect pass inside to the oncoming Stewart Moore, who ran a good support line and finished well.
The two tries were reward for the effort put in by Ulster in the second period.
The Bulls got the last say of the match however, with springbok flanker, Elrigh Louw, going over from close range a couple of minutes before the final whistle.
Ulster will now head home to regroup, recover and get ready for the next challenge, a home interprovincial derby against Connacht at Kingspan Stadium, as they look to bounce back from two defeats in South Africa.
Scorers
Vodacom Bulls
TRY: Lee-Arundse, Kriel, Grobbelaar, Moodie, Hanekom, Chamberlain, Louw
CON: Chamberlain x3, Kriel x2, Johannes
Ulster Rugby
TRY: Stockdale, Carson, Moore
CON: Doak, Humphreys x2
Teams
Vodacom Bulls
(1-8) Gerhard Steenekamp, Johan Grobbelaar, Wilco Louw,Cobus Wiese, Ruan Nortje, Marco van Staden, Elrigh Louw, Cameron Hanekom,
(15-9) Willie le Roux, Sebastian de Klerk, Canan Moodie, David Kriel, Kurt-Lee Arendse, Boeta Chamberlain, Embrose Papier.
Replacements: 16. Akker van der Merwe, 17. Jan-Hendrik Wessels, 18. Francois Klopper, 19. Sintu Manjezi, 20. Celimpilo Gumede, 21. Keagan Johannes, 22. Stedman Gans, 23. Aphiwe Dyantyi
Ulster Rugby
(1-8) Andrew Warwick, James McCormick, Corrie Barrett, Iain Henderson (C), Charlie Irvine, James McNabney, Sean Reffell, David McCann
(15-9) Mike Lowry, Werner Kok, Stewart Moore, Ben Carson, Jacob Stockdale, Aidan Morgan, Nathan Doak;
Replacements: Tadgh McElroy, Eric O’Sullivan, Tom O’Toole, Alan O’Connor, Nick Timoney, Dave Shanahan, James Humphreys, Ben Moxham.