Saracens' hopes of winning Pool Three suffered a major setback at Toulouse, but the Londoners remain favourites to reach the Heineken Cup last eight as one of the two best runners-up.
Saracens scored an early try through Chris Ashton but two Jean-Marc Doussain penalties edged Toulouse ahead.
An Owen Farrell penalty made it 8-6 to Sarries but Toulouse then took control.
Doussain drilled over five more penalties and Farrell's second penalty was not enough to earn a bonus point.
Toulouse are now four points clear of Saracens and with their final match away at winless Zebre they are odds-on favourites to win the pool.
But Saracens are in pole position to finish as one of the two best runners-up and with their final game at home to Irish minnows Connacht, they should join Toulouse in the last eight - although the Londoners would have to travel for their quarter-final.
Toulouse are the only four-time Heineken Cup champions but although they have been renowned for the fluidity of their attacking game over the years, they have laboured to find top gear this season.
The French giants are down in fourth in the Top 14, but they beat leaders Clermont at home last week, and although they were unable to cross the Saracens line they showed signs in the first half that they are rediscovering the cutting edge provided by their backs.
That, combined with the power of their pack, which was dominant at the breakdown, was enough to see off the challenge of Saracens.
The visitors defended in typically committed fashion but they just could not cope with the relentless waves of attack by Toulouse, led by mighty France number eight Louis Picamoles, and a series of penalties enabled Doussain to turns the hosts' dominance of territory and possession into points.
The fly-half kicked Toulouse into the lead after just a minute but Saracens hit back as scrum-half Richard Wigglesworth put the unmarked Ashton over down the blind-side, with Toulouse wing Hosea Gear missing in action.
England wing Ashton - who would later badly miss a one-on-one tackle on Gear - made 10m towards the posts, but Farrell could not convert, and although he exchanged penalties with Doussain, when the Toulouse fly-half landed his third successful kick on the half hour mark it gave the hosts a lead they held until the final whistle.
In the first half the home back three of Maxime Medard, Yoann Huget and Gear launched several threatening attacks and from one of them hooker Chiliboy Ralepelle was held up over the line.
But three penalties, either side of half-time, took the Toulouse lead out to 18-8 with just under 20 minutes to play.
Bar one searing Gear break the hosts were content to turn to the power of their massive ball carriers up front in a tighter second half, and Saracens just could not impose themselves.
Farrell, who was then replaced as Sarries turned to the more creative Charlie Hodgson at 10 for the closing stages, did land a penalty to put the visitors within sight of a losing bonus point.
But Doussain drilled home his seventh successful kick for Toulouse and Hodgson's bid to secure a losing bonus point came to nothing as his late drop-goal attempt drifted wide.
Saracens boss Mark McCall: "Obviously we are very disappointed - we don't think that we gave the best account of Saracens today.
"We just couldn't get any momentum today in our play. In the first half we gave them their points cheaply; they didn't have to work hard to get theirs and we had to work unbelievably hard to get ours - and then we died a slow death in the second half as they got their noses in front.
"I thought Toulouse were magnificent, they were hard to play against and we got sucked in to playing a game that we didn't really want to play, in terms of catch up.
"Today was a massive step up for us. They have a unique ability of raising their level for European games, but hopefully we can do a job on Connacht next Saturday so we can get the chance to prove that we were better than we were today."
Toulouse: Medard; Huget, David, Poitrenaud, Gear; Doussain, Vermaak; Ferreira, Ralepelle, Johnston, Maestri, Albacete, Nyanga, Dustautoir, Picamoles.
Replacements: Fickou for David (48), Bezy for Vermaak (79), Montes for Ferreira (60), Millo-Chluski for Ralepelle (60), Steenkamp for Johnston (60), Tolofua for Maestri (60), Tekori for Albacete (69), Camara for Dustautoir (78).
Saracens: Goode; Ashton, Wyles, Barritt, Strettle; Farrell, De Kock; M Vunipola, Brits, Johnston, Borthwick, Hargreaves, Wray, Brown, B Vunipola.
Replacements: Taylor for Wyles (55), Hodgson for Farrell (69), Wigglesworth for de Kock (51), George for Brits (71), Stevens for Johnston (51), Kruis for Hargreaves (51), Joubert for Wray (55).
Not Used: Barrington.
Sin Bin: M Vunipola (60).
Ref: Alain Rolland (Ireland).