Bristol edged to a nervy win at Bath to complete a West country derby double at the Recreation Ground.
James Williams and Siva Naulago crossed either side of half-time for the visitors but despite Piers Francis kicking eight points and Miles Reid crashing over, Francis' missed penalty four minutes from time proved costly.
Bath remain bottom of the Premiership.
Bristol remain third-bottom but now have a six-point advantage over Bath, who are yet to win in their seven games in all competitions in 2023.
Bath's line-out woes, so evident in last week's defeat by London Irish, returned to haunt them in the frenetic early stages, while Francis missed an early penalty.
The deadlock was broken on 18 minutes as Bristol's Semi Radradra pirouetted his way over the gain-line before offloading to Williams to touch down by the posts and register his first Premiership try on his 26th birthday.
AJ MacGinty converted to give the Bears a 7-0 advantage but Francis missed the chance to reduce the arrears eight minutes later.
Gabriel Ibitoye produced a fine tackle to deny Bath's Max Ojomoh a score in the corner but seconds later a close-range tap led to Reid driving over by the posts.
Francis added the extras to level the scores but seconds after the restart Harry Thacker saw an opportunist try chalked-off for a contentious knock-on against Naulago after charging down a Francis kick.
Francis booted Bath in front for the first time with a disputed penalty two minutes before the interval, but two minutes after the restart a sweeping move and a long Radradra pass found Naulago and he stepped past Matt Gallagher and raced down the line to coolly dot down in the corner.
Williams missed the conversion and MacGinty was sin-binned on 52 minutes after conceding his team's 13th penalty, with Francis kicking Bath into a 13-12 lead.
Bath could not make the most of their advantage and moments after returning MacGinty restored Bristol's lead from a close-range penalty.
Francis then missed a 42-metre penalty, which could have won it with four minutes remaining, as Bath fell to their ninth single-figure defeat of the season.
Bath hooker Niall Annett told BBC Radio Bristol:
"Derbies are usually scrappy, it was pretty messy, a lot of 50-50s, and unfortunately we've come out on the losing side, which is very disappointing.
"It comes down to the little things, not just Piers [Francis missing a penalty], we've all got to take responsibility, individually and collectively - that wasn't good enough.
"We've got to go away and figure out how we win these close games because we have had too many, we need to turn them into wins. Unfortunately, we just weren't good enough tonight.
"We have got a couple of days to get ourselves ready and then we'll go again and get a plan together to try and get a win at Leicester."
Harry Randall, who skippered Bristol for the first time on his 100th appearance, told BBC Radio Bristol:
"It's an easy game to get up for. I thought the boys dug in really deep to get the win. It was far from perfect but it's a sign of this team and the way we're going, the way we adapt to situations.
"Semi Radradra has had a tricky period with injury but he led from the front tonight and that's what great players do - we'll be patting him on the back tonight.
"We spoke at half-time, our discipline was poor in the first half, I thought we built pressure in the second half, scored straight away and made them chase. We showed massive character to get back in front after going behind again.
"Good teams find a way to win when it's not perfect, we've been far from perfect in the Prem but that's two on the bounce now and hopefully we can build on that next week."
Bath: De Glanville, Cokanasiga, Redpath, Ojomoh, Gallagher, Francis, Spencer (c); Obano, Annett, Rae, Attwood, Roux, Bayliss, Underhill, Reid.
Replacements: Dunn, Schoeman, Stuart, Van Velze, Coetzee, Schreude, Bailey, Cloete.
Bristol Bears: Piutau, Naulago, Radradra, Williams, Ibitoye, MacGinty, Randall (c); Thomas, Thacker, Lahiff, Joyce, Vui, Jeffries, Harding, Bradbury.
Replacements: B Byrne, Woolmore, Kloska, Heenan, Lewis, Uren, Bedlow, Lloyd.
Sin-bin: MacGinty.
Referee: Matthew Carley.