Premiership leaders Bristol, who failed to win a match in this competition last season, maintained their unbeaten run as they outscored local rivals Bath three tries to two to take the match.
Bristol made 12 changes from the side that beat London Wasps last weekend at the Memorial Stadium while Bath fielded a stronger starting line-up with nine changes from the one that beat Worcester at the Recreation Ground.
Both sides were forced to make late changes with centre Brian Lima pulling out of the Bristol side while left wing David Bory dropped out of the Bath side, both due to hamstring problems, to be replaced by Ashley Reay and Ian Davey respectively.
The conditions at the Memorial Stadium were far from ideal with a strong wind blowing and after the heavy rain in the preceding 24 hours which left puddles in several areas of the pitch.
The wind was at Bath's backs in the first half and fly-half Chris Malone had difficulty adjusting to the blustery conditions kicking from hand.
Two kicks from his own 22 went rolling over the dead ball line and the second led to the opening score after six minutes.
The ball did not come out the back of the scrum cleanly for Bristol but from a ruck it was fed out to fly-half Danny Gray who slotted a 22-metre drop goal between the uprights having already been off target with a penalty attempt.
Bath full back Matt Perry, in his 200th start for the club, broke from deep in his own half before linking up with Davy who burst down the touchline before passing back inside to Perry before the move broke down.
But referee Sean Davey had judged that Bristol had strayed offside and Malone levelled the scores midway through the half with a penalty from 30 metres out.
Bristol quickly restored their advantage with tighthead prop Jason Hobson staggering over the line but Gray's conversion attempt was blown wide of the near upright.
Despite being down to 14 men with Malone in the sin bin, Bath again drew level with a try from tighthead prop Duncan Bell, on his 32nd birthday, after a catch and drive.
Centre Shaun Berne, who took over the kicking duties with Malone off the field, was off target with the conversion attempt, as was Gray with a penalty attempt from wide on the right to leave the interval score at 8-8.
Bristol struck early in the second half as Italy centre Walter Pozzebon took the crash ball from Gray to slide over the line before Gray added the extras.
Bath were quickly back on level terms after a break by Berne but the centre was tackled short of the line by wing David Lemi only for wing Michael Stephenson to pick up and score with Malone adding the extras
The visitors looked set for another try as scrum half Andy Williams took a quick tap penalty and broke 40 metres but Lemi was there to tackle him just short as Bristol were forced to defend their line for a 10-minute spell
Marko Stanojevic, another birthday boy who has been named in the squad for Italy's World Cup qualifier against Portugal in L'Aquila next Saturday, found a gap out wide to score the winner for Bristol which Gray converted.