Stuart McCloskey accompanied by his two children led Ulster out onto the pitch as he joined a elite band of players to win 200 caps for the province.
The game also marked winger Rob Baloucoune’s long awaited return from injury after almost 12 months out of action.
There was less than 90 seconds on the clock when the visitors took the lead, from a turnover the Stormers put Evan Roos through a gap and the No8 went over unopposed, with out half Sacha Feinberg-Mngomezulu adding the conversion.
Feinberg-Mngomezulu extended the South African’s lead with a drop goal.
Stormers winger Ben Loader added his side’s second try on eight minutes as he pounced on a loose ball in midfield and went from the halfway line to touch down with Feinberg-Mngomezulu converting from a difficult angle.
Ulster opened their account on 11 minutes with Rob Baloucoune marking his return with a try.
It was Ulster’s first sustained period of pressure in the Stormers 22, the forwards battered away at the line and with a penalty advantage Jack Murphy flung the ball wide for the Irish winger to dive over in the corner for an unconverted try.
Ulster reduced the Stormers advantage with a second try on 29 minutes.
The home pack forced a scrum penalty in the shadow of the Stormers posts, Ulster took a quick tap and go and the first surge for the line was repelled but from another powerful drive, loosehead prop Andy Warwick squeezed over, with Cooney adding the conversion.
Feinberg-Mngomezulu missed the opportunity to extend the Stormers lead as he dragged a 37th minute penalty wide with some pressure from the home crowd.
Feinberg-Mngomezulu was then yellowed cared in the final minute of the first half for taking Baloucoune out off the ball and Ulster made their numerical advantage count immediately.
They kicked the penalty to the corner, the pack set up a driving maul and fly- half Jack Murphy touched down in the corner for an unconverted tie to tie the score at 17-17 going into the interval.
HT: 17-17
Ulster sealed the try bonus point three minutes after the restart.
The Stormers gave away a penalty under their own posts and Ulster elected for the tap and go. The forwards sucked in the defence to create space and Mike Lowry threw a long pass for Jacob Stockdale to dot down in the corner with Cooney converting from a tight angle.
Stormers captain Neethling Fouche was showed a red card on 44 minutes for a dangerous tackle on Ulster centre Ben Carson who had to come off for an HIA.
Feinberg-Mngomezulu then returned from the sin bin to land his second drop goal of the evening on 51 minutes.
Jacob Stockdale created Ulster’s fifth try on 55 minutes, the Irish winger surging clear of the defence, after a strong carry from Stuart McCloskey gained Ulster territory in the Stormers half, before popping the ball to replacement wing, Zac Ward, to run in with Jack Murphy converting.
The Stormers then scored a try in reply, with Willie Engelbrecht finding a gap in the Ulster defence to claw back the scoreline to 31-25. The conversion brought it to a four-point game.
Ulster then produced a scintillating move for their sixth try on the 66th minute.
After collecting a high ball in the backfield, Lowry broke out of defence and carried from his own half into the Stormers 22, he offloaded inside to Nathan Doak and the replacement scrum- half fed replacement centre, Stewart Moore, to go under the posts after a good supporting line.
Doak added the simple conversion to go extend the lead to 38-27.
Ulster replacement lock Harry Sheridan was yellow carded on 72 minutes, and from the resulting penalty the Stormers opted for a tap and go with Roos going over for his second try and Feinberg-Mngomezulu converting.
Despite a nervy end to the match, Ulster stole a loose ball at the Stormers lineout and Nathan Doak was able to boot the ball out to end the match.
A third victory in a row for Richie Murphy's side who jump to fifth in the table after the bonus-point victory.
Player of the Match - Jack Murphy
The Academy fly-half played with a maturity beyond his years. He showcased his kicking ability throughout the match and was the architect of many of Ulster's attacks. Scored his first try for Ulster with an excellent finish before the stroke of half-time to draw the home side back on level terms.
Scores
Ulster
Tries: Rob Baloucoune, Andy Warwick, Jack Murphy, Jacob Stockdale, Zac Ward, Stewart Moore
Cons John Cooney x 2, Jack Murphy, Nathan Doak
Stormers
Tries: Evan Roos x 2, Ben Loader, Willie Engelbrecht
Cons: Sacha Feinberg-Mngomezulu x 4
Drop Goal: Sacha Feinberg-Mngomezulu x 2
Teams
Ulster:
(15-1) 15. M Lowry; 14. R Baloucoune, 13. B Carson, 12. S McCloskey, 11. J Stockdale; 10. J Murphy, 9. J Cooney, 8. D McCann, 7. N Timoney, 6. Matty Rea, 5. K Treadwell, 4. A O’Connor (captain),3. T O’Toole, 2. R Herring, 1. A Warwick
Replacements:
16\. T Stewart for Herring 67 mins, 17. C Reid for Warwick 50 mins , 18. S Wilson for O’Toole 50 mins, 19. H Sheridan for O’Connor 67 mins, 20. J McNabney for Rea 51 mins, 21. N Doak for Cooney 55 mins, 22. S Moore for Carson, 23. Z Ward for Baloucoune 48 mins
Stormers:
15 Damian Willemse, 14 Ben Loader, 13 Suleiman Hartzenberg, 12 Dan du Plessis, 11 Leolin Zas, 10 Sacha Feinberg-Mngomezulu, 9 Dewaldt Duvenage, 8 Evan Roos, 7 Marcel Theunissen, 6 Dave Ewers, 5 Ruben van Heerden, 4 Connor Evans, 3 Neethling Fouché (captain), 2 Joseph Dweba, 1 Ali Vermaak.
Replacements:
A-H Venter for Dweba 46 mins, B Harris for Vermaak 53 mins, S Sandi for Ewers 47 mis, G Porter for Evans 57 mins, W Engelbrecht for Theunissen 57 mins, P de Wet for Duvenage 35 mins, J Matthee for Wilemse 68 mins, W Simelane for Hartzenberg 57 mins
Ref A Piardi (Italy)