Bristol took an early lead when centre Sam Cox took a pass from fly-half Jason Strange to power himself over the line, despite the tackle of number eight Ben Skirving.
Strange, who had earlier hit the left upright with a 40-metre penalty out on the right, was wide with the conversion.
Saracens came back into the game as they created an overlap out on the left allowing wing Ben Johnston to race in from 30 metres and score by the posts, with fly-half Glen Jackson adding the conversion.
Strange was off-target with a second penalty attempt but then found his mark, from slightly further in from the left touch, with a 40-metre kick that put Bristol back in front.
The home side then had their defence tested as Sarries mounted an attack from a quick lineout on their own 10m line.
The ball was spread wide with Paul Bailey taking it down the left touchline but he was beaten to the chip ahead.
From the breakdown the ball was spun back across field and with a four-man overlap hooker Matt Cairns gave a long pass to flanker Alex Sanderson who was tackled well short of the line by wing Lee Robinson.
Saracens continued to pressure and Bristol were penalised at the scrum, which has been a problem all season, as tighthead prop Darren Crompton slipped his binding and Jackson put his side back in the lead with a simple penalty from in front of the posts.
Bristol were forced to make two changes at the interval after wing Vaughan Going and scrum-half Shaun Perry had taken knocks. Cox moved to the wing with Argentina international Manu Contepomi taking over in the centre and Jake Rauluni behind the pack.
Jackson increased the visitors' lead early in the second half with a 35-metre penalty but was short with his next attempt on the hour from just inside the Sarries half.
Then, with the visitors within 10 metres of the Bristol line, number eight Geraint Lewis intercepted a stray pass. He raced upfield then kicked ahead but Robinson was beaten to the ball on the line by Johnston and Saracens were able to clear their line.
As the game went into the final 10 minutes Skirving scored behind the posts from a move which started at a scrappy lineout.
Jackson added the conversion and a 25-metre drop goal deep in time added on at the end of the game.