The first half was a ding-dong battle as both sides threw everything at one another, but the Vodacom Bulls had the edge on the scoreboard with a handy 20-12 lead at the break as both teams scored two tries apiece.
A thrilling second half ensued as the teams threw everything at one another resulting in a gripping end to the clash, with Ulster hooker Tom Steward earning his hat-trick, while they limited the South Africans to a penalty goal for their efforts as two Vodacom Bulls players were sent to the sin bin.
Ulster were first on the scoreboard as wing Rob Baloucoune dashed through in the corner in the second minute after taking advantage of space out wide, but their lead was reduced to two points in the 14th minute as Vodacom Bulls flyhalf Chris Smith slotted a penalty goal after missing an earlier attempt at the posts.
The Pretoria side continued to make their presence felt with Springbok speedster Kurt-Lee Arendse gathering a stunning chip kick to touch down for their first try in the 19th minute, and Smith added the extra two points to nudge them into a 10-5 lead.
Ulster came close to scoring in the 23rd and the 24th minutes, but they were held out by the solid defence, however, their third attempt proved successful with Stewart forcing his way over from a rolling maul, and they added the extras to reclaim a two-point lead.
The Vodacom Bulls hit back again, this time by scrumhalf Zak Burger after picking up the ball from the base of the ruck and diving over, and the Pretoria side again pushed their way into a 20-12 lead thanks to Smith’s second penalty goal on the stroke of halftime.
The Vodacom Bulls lost No 8 Elrigh Louw to a yellow card in the opening minutes of the second half, and Ulster took full advantage of this with Steward scoring his second try, and the successful conversion saw them reduce their deficit to 20-19.
Ulster continued to fight with intent with Steward crashing over in the 54th minute to secure a hat-trick and the conversion saw the hosts reclaim the lead.
A third penalty goal by Smith in the 63rd minute, however, saw both teams under pressure in the closing stages of the game, and it was Ulster who pushed the game to the edge with an invaluable penalty goal in the 73rd minute to take a 29-23 lead with minutes left on the clock.
A yellow card for the Vodacom Bulls’ replacement hooker Bismarck du Plessis did not help their cause and the visitors were forced to settle for the disappointing 32-23 defeat, with a second penalty goal costing them a losing bonus-point.
Ulster 32 (12) – Tries: Rob Baloucoune, Tom Steward (3). Conversions: Nathan Doak (3). Penalty goals: Doak, John Cooney.
Vodacom Bulls 23 (20) – Tries: Kurt-Lee Arendse, Zak Burger. Conversions: Chris Smith (2). Penalty goals: Smith (3).