Gloucester's resolute defending restricted Bath to just a handful of chances
Gloucester produced an inspired first-half performance to win the West Country derby and claim only their second Premiership win at The Rec.
Lesley Vainikolo rounded off a sublime move to put the visitors ahead, fly-half Nicky Robinson converting.
Robinson then scored a try himself before kicking two penalties.
Olly Barkley pulled a penalty back but there was no scoring after the break as Bath's sloppy handling was compounded by Gloucester's dogged defending.
In greasy conditions Bath failed to adapt their tactics and tried to reproduce the high-tempo, expansive game that has become their trademark.
Their poor execution, characterised by 15 handling errors, coupled with a faltering line-out was blown away by Gloucester's smarter tactics and refusal to allow the hosts time to think at the breakdown.
It was Robinson, in a virtuoso first-half show, that proved the difference.
His towering up and under led to Vainikolo's opener after Gloucester's pressure on a back-peddling Bath defence spilled the ball and some slick offloading put the winger clear. Robinson converted to give Gloucester a 7-0 lead.
Bath hit back with Luke Watson in the thick of things but the hosts tried to force their game and came undone time and again.
James Simpson-Daniel made an electrifying break and the resulting phases led to Watson conceding a penalty in front of his posts that Robinson sailed home to make it 10-0.
Barkley pulled three points back for Bath but Gloucester then produced a fabulous try.
Mike Tindall, back to the peak of his powers against his old club, surged up midfield to switch with Robinson whose deft chip ahead was skilfully gathered by Eliota Fuimaono-Sapolu and offloaded to Vainikolo who fed inside to the Cherry and Whites fly-half.
Robinson's missed conversion left the score 15-3 but, after Barkley failed with a missed penalty, he extended the visitors' lead by three points from halfway just before the break.
Half-time brought changes on both sides as Ben Skirving replaced Watson and Freddie Burns came on for injured Robinson.
Bath lost Lewis Moody in the opening minutes after he was caught in the face in attempting to charge down a kick and seconds later Gloucester lost Jim Hamilton when he was yellow carded for kicking the ball out of Michael Claassens' hands.
Bath looked to press their advantage but fierce counter-rucking by Tindall denied them a try in the right corner.
The hosts upped the pace again but too often they tried send the ball wide only to be snuffed out by their old rivals.
Burns picked up where Robinson left off with his positional kicking and cleverly moved Bath around the park at every opportunity.
Gloucester continued to harry their opponents into mistakes and even when Bath threatened to score with a series of penalties with 10 minutes left the Cherry and Whites refused to buckle and saw out a famous victory.
Bath head coach Steve Meehan: "Tactically we probably made every wrong decision we could in the first 20 minutes.
"Gloucester just made all the right ones, made all the running, grew in confidence and exposed us at every opportunity. By half-time a lot of damage had been done.
"Our enthusiasm levels were raised in the second half but we couldn't hold on to the ball long enough to turn any of our field positions into points."
Gloucester head coach Bryan Redpath: "The conditions we knew would be a leveller. It was crucial to get field position, turn them and put pressure on their back three. We got two tries from that."
"Nicky [Robinson] pulled a hamstring after 25 minutes. He struggled on with it but at half-time it just tightened up.
"The tries came first from his high ball which we turned over and his grubber through for his try. There were a lot of good things from him - people say this and that but what he is is a very talented rugby player.
"When he sticks to that script that we have and he plays the game that he is comfortable with, he's one of the best around."
Replacements: Cuthbert for Abendanon (70), Biggs for Banahan (73), McMillan for Claassens (75), Catt for Barnes (50), Batty for Dixon (65), Wilson for Bell (49), Ovens for Moody (42), Skirving for Watson (40).
Replacements: Burns for Robinson (40), Dickinson for Wood (72), S. Lawson for Azam (60), Capdevielle for Doran-Jones (69), Attwood for Hamilton (52), Narraway for Hazell (60), Pasqualin for Molenaar (76).
This page is best viewed in an up-to-date web browser with style sheets (CSS) enabled. While you will be able to view the content of this page in your current browser, you will not be able to get the full visual experience. Please consider upgrading your browser software or enabling style sheets (CSS) if you are able to do so.