Toulouse made it three wins from three matches in the Heineken Cup with a workmanlike 28-16 victory over Glasgow at Firhill.
Glasgow produced one of the biggest shocks in the competition's history by winning in Toulouse two years ago, but rarely looked like repeating that feat on home soil against the defending champions.
With just one victory from three Pool 6 games, the Warriors' hopes of qualifying for the quarter-finals have now suffered a major blow, and will now have to win their final three matches to stay in the hunt for the knock-out stages.
The first of those will be in southern France next weekend, when they will attempt to reverse this one-sided defeat.
The four-time champions threatened to run riot at times in the first half as they sliced through the Glasgow's defence for three tries, but the hosts stuck to their task well and Toulouse ran out of ideas after the break.
Two early Ruaridh Jackson penalties for Glasgow sandwiched a rampaging try for the visitors from Florian Fritz, which was converted by David Skrela.
Skrela added a penalty and another conversion from under the posts after Yannick Jauzion had burrowed over.
Toulouse looked like running away with the game but a pacy Glasgow break saw Max Evans' grubber kick bounce nicely for Federico Aramburu to touch down, with Jackson converting.
Skrela replied with another three-pointer and Fritz's kick then helped set up Cedric Heymans for a try in the left corner.
Jackson's penalty narrowed the deficit to 25-16 at the interval, but the home side were unable to make any further inroads during a scrappy second half in which Skrela's 52nd-minute penalty was the only score as both sides missed out on a bonus point.
Pens: Jackson 3
Tries: Fritz, Heymans, Jauzion
Cons: Skrela 2
Pens: Skrela 3
Glasgow Warriors: 15 Bernardo Stortoni, 14 Federico Aramburu, 13 Max Evans, 12 Graeme Morrison, 11 DTH van der Merwe, 10 Ruaridh Jackson, 9 Henry Pyrgos, 8 Richie Vernon, 7 John Barclay, 6 Robert Harley, 5 Alastair Kellock (c), 4 Richie Gray, 3 Moray Low, 2 Dougie Hall, 1 Jon Welsh.
Replacements: 16 Fergus Thomson, 17 Ed Kalman, 18 Kevin Tkachuk, 19 Aly Muldowney, 20 Chris Fusaro, 21 Colin Gregor, 22 Peter Murchie, 23 Hefin O'Hare.
Toulouse: 15 Maxime Medard, 14 Vincent Clerc, 13 Florian Fritz, 12 Yannick Jauzion, 11 Cedric Heymans, 10 David Skrela, 9 Byron Kelleher, 8 Shaun Sowerby, 7 Thierry Dusautoir (c), 6 Yannick Nyanga, 5 Patricio Albacete, 4 Yoann Maestri, 3 Census Johnston,2 William Servat, 1 Jean-Baptiste Poux.
Replacements: 16 Virgile Lacombe, 17 Daan Human, 18 Yohan Montes, 19 Gregory Lamboley, 20 Nicolas Vergallo, 21 Clement Poitrenaud, 22 Jean Bouilhou, 23 Louis Picamoles.
Referee: James Jones (Wales)