A much-improved Ulster recorded a much-needed victory over Top14 leaders Racing 92 in the second round of the Investec Champions Cup.
Seventh in the United Rugby Championship, and coming off the back of three straight losses, including last week's heavy defeat at Bath, Dan McFarland's men needed a performance, and they delivered.
Despite an early try, it took a while for Ulster to gain the upper hand but once they did they never looked back and had a bonus point wrapped up at the start of the second half.
An ill-disciplined Racing side had Springbok World Cup winners Siya Kolisi and Trevor Nyakane in their pack but Ulster’s South Africa prop Steven Kitshoff outshone both of his international team-mates.
The result gets the 1999 champions up and running in Europe with five points in Pool 2 and provides a big boost ahead of the visit of Connacht next weekend.

It was the strangest of first halves that was riddled with mistakes but despite losing five of their own lineouts, missing a penalty kick to touch, getting turned over at the breakdown multiple times, Ulster held what was a deserved 21-5 lead going in at the break.
They got off to a bright start with Tom O'Toole, James Hume and Kitshoff all making ground with ball in hand.
That led to a close-range penalty that allowed Ulster to work a pre-planned tap move that quickly turned into a maul and Nick Timoney emerged with the ball for the opening try in the third minute.
The visitors looked dangerous with ball in hand and twice broke through the Ulster line before spilling the ball forward, Nolann Le Garrec and Gael Fickou the culprits.
Stuart Lancaster’s side thought they had scored when Le Garrec touched down in the 31st minute but the TMO spotted an obstruction on O’Toole in the build-up.
A big tackle and jackal penalty by Jacob Stockdale roused the crowd and moments after Rob Herring returned from a head injury assessment, they grabbed a second.
Again, it came from an innovative tap penalty move; this time Cooney tap-passed the ball to the onrushing Timoney before man of the match Stuart McCloskey spun out of a tackle to dot down.
But Racing did hit Ulster on the counter soon after, a loose ball came to out-half Antoine Gibert and his kick-pass for Juan Imhoff saw the Argentinean winger speed through before offloading for Le Garrec to run in for an unconverted try.
However, with the French outfit continuing to give up penalties – eight in the first half alone – and Ulster eventually sorting out their lineout, a third try soon followed.
Stockdale found a gap out wide and passed inside for Cooney, who was hauled down short of the line but the defence was stretched and Matty Rea had a simple task when the ball came wide; Cooney landed his third conversion to give Ulster a 16-point buffer at the break.
And it took just seven minutes for the URC side to secure a try bonus when Timoney again finished off a maul close to the line, which was again converted by Cooney.
The game looked out of reach but the Parisians, beaten at home last week by Harlequins, turned to their pack in an attempt to leave Belfast with at least a try bonus.
Hooker Janick Tarrit scored two tries in a 10-minute spell midway through the half, both coming after sustained spells of pressure.
Ulster hit back and Cooney kicked a penalty to make it 31-15, a three-score game, with 10 minutes to play.
Racing failed to work another chance and the hosts saw out the game comfortably in the end and indeed could have added another but the elusive Mike Lowry was dragged down inside the 22.
Not perfect but much, much better from Ulster.
Ulster: Mike Lowry; Rob Baloucoune, James Hume, Stuart McCloskey, Jacob Stockdale; Billy Burns, John Cooney; Steven Kitshoff, Rob Herring, Tom O'Toole; Alan O'Connor, Iain Henderson (capt); Dave Ewers, Nick Timoney, Matty Rea.
Replacements: Tom Stewart, Eric O'Sullivan, Marty Moore, Kieran Treadwell, Harry Sheridan, Nathan Doak, Jake Flannery, Stewart Moore.
Racing 92: Max Spring; Henry Arundell, Gael Fickou, Henry Chavancy, Juan Imhoff; Antoine Gibert, Nolann le Garrec; Hassane Kolingar, Janick Tarrit, Trevor Nyakane; Baptiste Chouzenoux, Will Rowlands; Cameron Woki, Siya Kolisi, Wenceslas Lauret.
Replacements: Eddy Ben Arous, Guram Gogichashvili, Gia Kharaishvili, Fabien Sanconnie, Ibrahim Diallo, Maxime Baudonne, Tristan Tedder, Inia Tabuavou.
Referee: Luke Pearce (Eng).