Ruaridh Jackson hit the post with a late penalty as Glasgow fell to a fourth Heineken Cup loss at Castres.
The visitors dominated the first half but only had a John Barclay try to show for their high-tempo approach.
Wave after wave of Castres attacks were repelled after the break but Yannick Caballero eventually touched down, with two Glasgow players in the sin-bin.
Trailing by two points, Jackson had the chance to win it for Glasgow on 78 minutes only to strike an upright.
Castres move up to second in Pool 4, with Glasgow propping up the section on a meagre two points.
Peter Horne and Romain Teulet traded penalties in the opening exchanges, with Glasgow looking the more menacing side.
Nikola Matawalu was outstanding for Gregor Townsend's team; the Fijian scrum-half a buzzbomb in attack and a lion in defence.
Glasgow winger DTH van der Merwe was denied a try by the outstretched hand of an opponent, as Sean Lamont aimed an offload at the Canadian in the corner.
Matawalu was then downed just short of the try-line after a quick tap and go.
A swift break from Tommy Seymour sliced through the home ranks but Horne, who missed a long-range penalty, could not keep up with the winger and the ball popped to a Castres man.
Teulet failed with two long-range penalties as the hosts struggled to match Glasgow's intensity.
And the visitors' good work was rewarded with a score on the stroke of half-time.
Ryan Wilson split the French defence with a brilliant break and found Barclay in support.
The skipper pulled a hamstring on collecting the ball but still had the strength and will to plunge over the line, with two opponents grappling all over him.
Horne missed the conversion attempt but Glasgow went into the break the much happier side.
Castres upped the pace after their lethargic first 40 minutes and twice kicked penalties into the corner but could not find a way past the resolute Warriors.
After soaking up some intense pressure, Glasgow almost sprung a surprise second try when Matawalu embarked on an amazing run from deep, only to be bulldozed over five metres short, without a support player in sight.
Castres rumbled forward with their driving maul but a combination of slack handling and stout defending kept them out as tempers started to fray.
Glasgow were reduced to 14 men when Tom Ryder was punished for taking out a man in the air at a line-out.
The French side were very fortunate to keep a full compliment of players when the match officials missed a violent stamp on Moray Low's head from replacement Ibrahim Diarra.
There were loud cries for a penalty try when a scrum was twice collapsed near the Warriors' line and, at the third attempt, Matawalu saved the day by hacking clear after getting a glimpse of the ball.
The visitors found themselves down to 13 when Byron McGuigan was yellow-carded for a foolish late block.
And Castres finally broke through as Caballero was carefully guided over during a composed drive, with Dan Kirkpatrick adding the extras.
With Ryder back on for the last few minutes, Glasgow were handed a chance to snatch an unlikely win when a scrum went down 30 metres in front of the posts but Jackson was inches away from glory.
Castres: Teulet, Bonnefond, Cabannes, Lamerat, Garvey, Tales, Lacrampe, Lazar, Bonello, Coetzee, Rolland, Tekori, Bornman, Caballero, Wannenburg. Replacements: Dulin for Teulet (65), Sanchou for Cabannes (59), Kirkpatrick for Tales (52), Taumoepeau for Lazar (59), Wihongi for Coetzee (50), Samson for Rolland (63), Diarra for Wannenburg (50). Not Used: Mach.
Glasgow: Maitland, Seymour, S. Lamont, Horne, van der Merwe, Jackson, Matawalu, Reid, MacArthur, Low, Swinson, Ryder, Eddie, Barclay, Wilson. Replacements: Morrison for Horne (61), McGuigan for van der Merwe (65), Kennedy for Matawalu (73), Hall for MacArthur (66), Hunter for Low (71), Campbell for Swinson (61), Harley for Barclay (41). Not Used: Grant.
Sin Bin: Ryder (66). McGuigan (71)
Ref: Andrew Small (RFU).