Toulouse strengthened their position at the top of Heineken Cup Pool 6 as they secured a four-try bonus point in a convincing win over Connacht.
Niall O'Connor landed an early penalty for the Irish province.
But Timoci Matanavou and Maxime Medard scored first-half tries to help the home side to a 10-3 half-time lead. Luke McAlister missed both conversions.
Louis Picamoles and Matnavou touched down in the second half, with Lionel Beauxis converting both tries.
It may have been Connacht's 14th successive defeat but they will take a lot of encouragement from this display at the Stade Ernest Wallon.
The Connacht scrum was in all sorts of trouble in the opening half and that undid a lot of great work with Toulouse getting half of their eight first-half penalties on their own scrum.
But it was obvious from the outset that Eric Elwood's men were going to make the French battle for it and they should have hit the front after just five minutes.
However, the kicking frailties which have hindered Connacht all season were once again evident as O'Connor hit the left-hand post from a straightforward 25-metre attempt.
O'Connor gave Connacht a surprise lead after 15 minutes when he landed a penalty from 40 metres.
The score followed a late tackle by Thierry Dusautoir on Tiernan O'Halloran which led to a dust-up in midfield.
Toulouse only got into the Connacht 22 twice in the opening half but they scored two tries off these forays and it took a superb tackle by a fired-up Ray Ofisa on McAlister to prevent what seemed an inevitable try.
Nevertheless, Toulouse hit the front at the end of the opening quarter.
They put in a superb drive off a line-out on the right, and the attack finished with Fiji Sevens international Matanavou touching down Medard's grubber kick.
McAlister missed the conversion but created the second try for Medard with a pinpoint cross-field kick after Medard had made a fine break.
In between, Connacht countered well but the closest they came to scoring was when Dave McSharry went inside and got smothered with his captain Gavin Duffy cutting a good line outside him.
That left it 10-3 at the break but Toulouse turned the screw after the restart with 20-stone Samoan tighthead Census Johnston leading the charge.
They pounded the Connacht line for several minutes early on in the second half.
The pressure finally told with number eight Picamoles getting their third try with a tap and go after another infringement by the visiting pack.
Beauxis, who replaced Florian Fritz at the break, added the conversion from the right to make it 17-3.
But Connacht hit back with O'Halloran superb on the left wing and they again took the game to Toulouse.
The home crowd started getting frustrated when it seemed that they would not get a bonus point, but 10 minutes from time Matanavou got in for his second try down the left.
Beauxis again added the difficult conversion to put further daylight between them but it was Connacht who finished the game on the offensive.
The Irish province will now hope to wrap up their maiden season in the Heineken Cup by defeating Harlequins next Friday in Galway, and they will go into that clash with plenty of confidence after this gutsy display.
Toulouse: Maxime Medard; Vincent Clerc, Yann David, Florian Fritz, Timoci Matanavou; Luke McAlister, Luke Burgess; Gurthro Steenkamp, William Servat, Census Johnston; Yoann Maestri, Patricio Albacete; Jean Bouilhou, Thierry Dusautoir, Louis Picamoles.
Replacements: Christopher Tolofua for Servat (66) Jean-Baptiste Poux, Gregory Lamboley for Maestri (59) , Jean-Marc Doussain for Burgess (71), Lionel Beauxis for Fritz (40), Clement Poitrenaud for David (59), Shaun Sowerby for Bouilhou (68), Human for Steenkamp (63)
Not used: Baptiste Poux
Connacht: Gavin Duffy, Fetu'u Vainikolo, Kyle Tonetti, Dave McSharry, Tiernan O'Halloran, Niall O'Connor, Paul O'Donohoe, Brett Wilkinson, Adrian Flavin, Dylan Rogers, Michael Swift, Mike McCarthy, John Muldoon, Ray Ofisa, George Naoupu.
Replacements: Ethienne Reynecke for Flavin (61), Stewart Maguire for Rogers (47), Eoin McKeon for Naoupu (74), Dave Moore for O'Connor (67), Miah Nikora for O'Donohoe (67), Henry Fa'afili for McSharry (61)
Not used: Denis Buckley, Mick Kearney
Referee: Wayne Barnes (RFU)