Rhys Priestland slotted two penalties and a conversion, yet it was Bristol’s day as they climbed to just a point behind second-placed Sale Sharks.
It was Bath’s first Premiership home defeat for a year, but Bristol’s fourth league win on the bounce underlined serious title play-off ambitions this season.
Rhys Webb teamed up with his fellow Wales international Priestland at half-back for a Bath debut, while prop Will Stuart and number eight Taulupe Faletau returned from Six Nations duty and Mike Williams replaced Tom Ellis in the back row.
Bristol boss Pat Lam made seven changes from the side that scraped past Worcester last time out, including first league starts of the season for prop Yann Thomas and number eight Jordan Crane, with Leiua replacing injured wing Henry Purdy.
Despite Bristol’s long wait for a win on Bath soil, they were off and running inside five minutes, going ahead through a well-worked try.
A Priestland penalty opened Bath’s account, but Bristol looked the far more threatening team with ball in hand and they conjured a second try after 17 minutes.
The visitors were playing advantage from a penalty award and Sheedy’s slicing break took him behind the Bath defence before he delivered an inch-perfect kick to an unmarked Leiua, who touched down.
Sheedy converted from the touchline, but Bath responded impressively as their forwards set up camp inside Bristol’s 22 and applied relentless pressure.
Bristol had lock Joe Joyce sin-binned in their attempts to repel Bath, yet they ultimately gained a penalty that Sheedy cleared to touch.
It was a wasted opportunity by Bath, although they did manage to cut the deficit just before half-time when Priestland landed a second penalty after Bristol drifted offside.
Bath dominated the third quarter in terms of territory and possession, twice sacrificing kickable penalties to go for a lineout drive, but Bristol’s defence held firm.
Skipper Steven Luatua was at the heart of Bristol’s defensive effort and Bath were left frustrated by their failure to break through.
And Bristol punished them in the 63rd minute, attacking from deep to create space for Morahan, although Bath full-back Tom Homer pulled off a superb try-saving tackle.
But the ball was quickly recycled and moved wide and Randall claimed Bristol’s third try, again converted by Sheedy.
Webb went off with 15 minutes left and his replacement Chudley made an immediate impact, appearing on Priestland’s shoulder, collecting the fly-half’s pass and sprinting over unopposed.
Priestland’s conversion made it a six-point game again with 13 minutes left, but, despite Bath having chances to make further inroads, Bristol kept their composure to claim an outstanding victory.
Sign up to our mailing list here and we’ll keep you up to the minute with weekly updates from the world of rugby.