|European Champions Cup|
|Toulouse (3) 23|
|Tries: Fickou, Picamoles Cons: Bezy, Doussain Pens: Bezy 3|
|Ulster (10) 25|
|Tries: Pienaar, Trimble, L Marshall Cons: Jackson 2 Pens: Jackson 2|
Ulster kept their hopes of Champions Cup quarter-final qualification alive by completing back-to-back victories over Toulouse with a 25-23 success.
A Ruan Pienaar try helped the visitors to a 10-3 half-time lead and Andrew Trimble and Luke Marshall added second-half touchdowns for the Irish province.
Gael Fickou crossed for Toulouse, with Louis Picamoles adding a late try.
Ulster lie second in Pool One, 10 points behind Saracens, with a game in hand, but Toulouse's hopes have ended.
With two matches against bottom side Oyannax still to come, Les Kiss' side retain realistic hope of making the last eight by finishing at least second in their pool.
Ulster make confident start
Having triumphed 38-0 in Belfast a week ago, Ulster began the game at the Ernest-Wallon Stadium in confident fashion and Paddy Jackson landed a third-minute penalty to give his team an early lead.
Ulster continued to enjoy territorial dominance but Pienaar and Jackson were off-target with long-range penalty attempts.
Just after the half-hour mark, Pienaar picked up and dived over the ruck to score the opening try under the posts, following a rolling maul that set up the score.
Jackson converted but three minutes later was sent to the bin when his deliberate knock-on denied the hosts a likely try-scoring opportunity.
Just before the break, replacement Rory Scholes touched down for Ulster but his 'try' was chalked off for an earlier forward pass.
Sebastien Bezy's penalty after the interval reduced the deficit, but Trimble's 45th-minute try, his 24th in the competition, put his side in control again.
Centre Stuart McCloskey broke through the Toulouse defence and Pienaar and Franco van der Merwe played their part in a slick passing manoeuvre, before Trimble stretched to touch down in the corner.
Fickou's try completed a flowing Toulouse move in the 51st minute, Bezy's conversion reduced the home side's deficit to two points and the scrum-half then kicked a penalty to nudge Toulouse in front.
Jackson replied with his second penalty and then helped set up Marshall, who collected an inside pass from Alan O'Connor, before crossing for the ultimately decisive try.
Toulouse consolation try
The fly half converted to put nine points between the sides but the four-time champions responded with a late try by French international Picamoles to reduce the winning margin to two points and clinch a bonus point.
Picamoles, the back-row replacement, rumbled over for a try following a maul as Ulster's hitherto reliable defences were breached, with Jean-Marc Doussain adding the additional points.
For Ulster, this was only their third-ever success on French soil while Toulouse have suffered their worst start to a European campaign since 2003.
The Irish province now face important Pro12 assignments against Connacht and Munster, while Toulouse take on fellow Top 14 title challengers Toulon and Stade Francais in their next domestic encounters.
Toulouse: Alexis Palisson; Kunatani Kunabuli, Gael Fickou, Florian Fritz, Timoci Matanavou; Jean-Marc Doussain, Sébastien Bézy; Cyril Baille, Julien Marchand, Census Johnston, Gregory Lamboley, Yoann Maestri, Yacouba Camara, Thierry Dusautoir, Imanol Harinordoquy
Replacements: Christopher Tolofua, Gurthro Steenkamp, Gert Muller, Joe Tekori, Louis Picamoles, Gillian Galan, David Mele, Clément Poitrenaud
Ulster: Louis Ludik; Andrew Trimble, Luke Marshall, Stuart McCloskey, Craig Gilroy; Paddy Jackson, Ruan Pienaar; Kyle McCall, Rory Best, Wiehahn Herbst; Alan O'Connor, Franco van der Merwe; Robbie Diack, Sean Reidy, Roger Wilson.
Replacements: Rob Herring, Andrew Warwick, Ricky Lutton, Lewis Stevenson, Nick Williams, Paul Marshall, Ian Humphreys, Rory Scholes.