Ellis Genge scored two tries on his Bristol return to help his side to a late 31-29 win over rivals Bath.
Genge's second-minute try was cancelled out by Ben Spencer, and Magnus Bradbury kept the hosts close as Bath's Piers Francis kicked three penalties.
Luke Morahan gave the Bears a half-time lead, with Bath reserve hooker Niall Annett sent off after a post-try melee.
Bath's Tom Dunn was mauled over as they went in front but Genge scored his second before Will Capon's late winner.
Bath fly-half Francis saw a last-second drop-goal attempt drift just wide as new boss Johann van Graan began his tenure with a losing bonus point.
England prop Genge sprinted in from 30 metres to celebrate his return to his hometown club after a summer move from Leicester before Bath skipper Spencer sold an excellent dummy to break through after 14 minutes to add to Francis' first penalty.
Bath, who lost flanker Chris Cloete to an ankle problem early on, saw England prop Beno Obano helped off with a nasty-looking injury having missed most of last season with a knee problem.
Bristol responded to a second Francis penalty by Bradbury going over in the corner after 27 minutes, before visiting centre Will Butt was sin-binned for holding up a 34th-minute Bristol break.
With no Television Match Official on duty, Morahan controversially went over after good work by Charles Piutau to put Bristol back in front soon after, although it appeared that a Bath player had been held down by an opponent in the build-up.
Summer-signing Annett, who was warming up off the field when the try was scored, was sent off and Bristol fly-half Callum Sheedy sin-binned as tempers flared between the two sets of players before a third Francis penalty cut the gap between the sides to a point at half-time.
Great work from Jaco Coetzee, which saw Bath's South African number eight get injured in the process, set up Dunn's mauled try 17 minutes after the break as the visitors opened up a six-point lead before a fourth Francis penalty extended the gap to nine.
Dave Attwood was held up over the line as Bath went close to sealing victory, before Bristol got back into it as Genge powered in from 15 metres after a quick tap penalty before Francis kicked a fifth penalty to put Bath in front once more.
In the final moments former Sale fly-half AJ MacGinty - who was making his Bristol debut after a summer move - kicked a late penalty deep into Bath territory, and from the resulting lineout the hosts' pack were too strong as Capon was carried over the line to complete a memorable comeback victory.
Bristol Bears: Piutau; Morahan, O'Conor, Bedlow, Lane; Sheedy, Randall; Genge, Byrne, Sinckler, Joyce, Vui, Jeffries, Heenan (capt), Bradbury.
Replacements: Capon, Woolmore, Lahiff, Holmes, Lewis, Uren, MacGinty, Bates.
Bath: De Glanville; Hamer-Webb, Butt, Redpath, Gallagher; Francis, B Spencer (capt); Obano, Dunn, A Coetzee, Attwood, McNally, Bayliss, Cloete, J Coetzee.
Replacements: Annett, Boyce, Jonker, W Spencer, Richards, Schreuder, Bailey, De Carpentier.
Referee: Tom Foley.