|Bristol (9) 12|
|Pens: Henson 3 Drop-goal: Henson|
|Bath (3) 11|
|Tries: Rokoduguni Pens: Priestland 2|
Gavin Henson kicked all Bristol's points on his injury return as they beat rivals Bath for the first time in 11 years to boost their survival hopes.
The former Wales fly-half's drop-goal from range was the highlight of an otherwise low-key first half.
Bath's Harry Davies and David Denton had tries disallowed before Semesa Rokoduguni intercepted to score.
But Rhys Preistland crucially missed the conversion and Bristol held on to move two points behind Worcester.
Mark Tainton's side remain bottom of the table despite the victory, which ended their seven-game losing streak, while Bath are in the final play-off spot just a point above fifth-placed Leicester.
Veteran Henson won 33 caps for Wales between 2001 and 2011 and got the better of the kicking battle with his opposing number 10 and fellow countryman Rhys Preistland.
Bath's Davies and Denton were denied scores by last-gasp tackles from Will Hurrell and Alby Mathewson respectively, on both occasions their feet ended up in touch.
The Premiership's record try-scorer Tom Varndell was forced off against his wishes after failing a head injury assessment but, in front of their biggest crowd of the season, they stood firm to defeat Bath for the first time since December 2006.
Todd Blackadder's side have now lost their last four away games in the league.
Bristol: Woodward; Lemi, Hurrell, Piutau, Varndell; Henson, Mathewson; Bevington, Jones, Perenise, Tuohy, Evans, Eadie, Lam, Crane.
Replacements: Crumpton, O'Connell, Ford-Robinson, Jeffries, Fenton-Wells, Williams, Pisi, Wallace.
Bath: Homer; Rokoduguni, Joseph, Tapuai, Davies; Priestland, Cook; Obano, Batty, Lahiff, Stooke, Ewels, Ellis, Denton, Grant.
Replacements: Van Vuuren, Marfo, Palma-Newport, Douglas, Mercer, Homer, Hastings, Clark.
Referee: Greg Garner.
For the latest rugby union news follow @bbcrugbyunion on Twitter.