|Gloucester (16) 31|
|Tries: Marshall, Thrush, Hibbard Cons: Burns 2 Pens: Burns 3, Twelvetrees|
|Saracens (13) 23|
|Tries: Brits, Fraser Cons: Lozowski2 Pens: Bosch, Lozowski 2|
Saracens suffer a second successive Premiership defeat but fit-again prop Mako Vunipola staked a claim to rejoin England as he played 70 minutes of their loss at an inspired Gloucester.
Vunipola, returning after nine weeks out, proved his fitness in a game won by Richard Hibbard's late try.
Scores were locked 23-23, Sarries' Schalk Brits and Will Fraser tries cancelled out Tom Marshall and Jeremy Thrush's efforts.
But Hibbard try ensured victory.
A Billy Twelvetrees seven minutes from the end, had edged Gloucester ahead for the third time in the enthralling top-flight battle before the hosts' third try denied Saracens a losing bonus-point.
Sarries, who lost back-to-back first-team games for the first time since May 2015, missed the chance to close the gap on leaders Wasps at the top.
Things had looked ominous for Gloucester - who have lost just once at home in all competitions since October - when Saracens crossed early on through South Africa hooker Brits after clever play from Richard Wigglesworth.
But David Humphreys' side settled into a bruising game and eventually earned themselves a three-point half-time lead thanks to Marshall's try and Billy Burns' accurate boot.
After the break, lock Thrush collected a loose Saracens pass to extend the hosts' lead with only his second try for the club, before Alex Lozowski's penalty cut the deficit for Sarries.
A gripping game was then interrupted by a worrying injury to Gloucester fly-half Burns, who went down after a try-saving tackle in the corner and received lengthy treatment before being stretchered off with an oxygen mask, with the medical staff taking real care not to move the 22-year-old.
Saracens then drew level when Will Fraser crossed after a driving maul from a line-out and Lozowski converted to make it 23-23, and the visitors looked set for a late comeback.
But then, after Twelvetrees had kicked Gloucester back in front from the tee, David Halaifonua broke quickly and almost crossed in the corner before the match-clinching try finally came from the resulting line-out, as Hibbard's strength saw him over.
Gloucester: Marshall; Sharples, Scott, Twelvetrees, Halaifonua; Burns, Heinz (capt); Hohneck, Hibbard, Ma'afu; Savage, Thrush; Moriarty, Rowan, Morgan.
Replacements: Matu'u, Thomas, Doran-Jones, Galarza, Ludlow, Braley, Hook, Trinder.
Saracens: Taylor; Ashton, Bosch, Barritt (capt), Ellery; Lozowski, Wigglesworth; M Vunipola, Brits, Figallo, Rhodes, Hamilton, Fraser, Burger, Wray.
Replacements: Saunders, Barrington, Du Plessis, Flanagan, Brown, Spencer, Malins, Gallagher.
Referee: Wayne Barnes.
For the latest rugby union news follow @bbcrugbyunion on Twitter.