Ulster secured a first win on South African soil as they withstood a Lions comeback to edge the URC game 39-37.
Robert Balacoune went over for Ulster at Ellis Park before Lions tries from Francke Horn and Emmanuel Tshituka.
A Billy Burns try left Ulster trailing 18-15 at the break but they surged clear as Rob Lyttle, Stuart McCloskey and Rob Herring touched down.
The hosts hit back with Andries Coetzee, Quan Horn and Francke Horn tries but they fell just short
Ulster move up to second in the standings after this pulsating bonus-point victory in Johannesburg on Saturday.
Baloucoune, on his return from the Emerging Ireland tour, gave Ulster the perfect start after two minutes by jinking inside and cantering through to tap down under the posts.
John Cooney added the conversion and then a penalty after Gianni Lombard flighted over for the Lions' first points of the game.
The hosts then seized control and from a turnover clever Jean-Pierre Smith off-load sent Francke Horn collected from a clear to sprint 75 metres to the line.
Lombard levelled with the conversion but he missed the next two-point attempt after Tshituka barged over from close range.
Ulster regrouped and their pressure before half-time led to Lions centre Henco van Wyk being yellow-carded for a deliberate knock on.
The Irish side cashed in on the extra man, first with Burns going over from Michael Lowry's pass and then a minute after the restart as Lyttle sprinted down the line to put Ulster in front.
Cooney's conversion made it 22-18 and it was followed by another try five minutes later when the Lions knocked the ball back from an Ulster lineout but only to an alert McCloskey, who stole in and sauntered over the line to seal the bonus point.
Cooney put over the conversion before Herring rumbled over from a surging scrum on 53 minutes.
Ulster looked to be cruising after Nathan Doak's conversion put 18 points between the sides but back came the Lions.
Coetzee spotted a gap and drove through for an unconverted try and then Quan Horn touched down in the corner with Jordan Hendrikse making no mistake this time with the extras.
Doak eased Ulster nerves with a penalty to make it 39-37 but the Lions were not finished yet and Francke Horn scored his second try, which was converted by Hendrikse, to leave the gap at just two points with three minutes left.
It was tense finish for Ulster but they hung on for a fourth win in their opening five URC matches.
Lions: Coetzee; Van der Merwe, H van Wyk, Louw, Q Horn; Lombard, Nohamba; J Smith, Visagie, Dreyer, Alberts, Nothnagel (capt), Tshituka, Venter, F Horn.
Replacements: Botha, Sithole, R Smith, Van Vuren, Sangweni, Van den Berg, Hendrikse, Z du Plessis.
Ulster: Lowry; Baloucoune, Marshall, McCloskey, Lyttle; Burns, Cooney; O'Sullivan, Herring, Milasinovich, O'Connor (capt), Carter; McCann, Marcus Rea, Vermeulen.
Replacements: Andrew, Reid, O'Toole, Izuchukwu, Timoney, Doak, S Moore, McIlroy.