Bath, with veteran backline ace Mike Catt playing a leading role at fly-half – with internationals Kevin Maggs and Mike Tindall in the centres – held a 10-9 half-time lead, but they were outscored by 20-7 in the second half, with the Premiership pace-setters stepping up a gear.
Gloucester's French fly-half Ludovic Mercier contributed 10 points in the second half (two conversions and two penalties), to go along with his nine points (three penalties) in the first period.
Hooker Olivier Azam and young speed merchant Marcel Garvey scored second-half tries, with Garvey's 79th minute score cruelly denying Bath a well-deserved bonus point.
Mercier opened the scoring for his side with a penalty in the 11th minute, followed by another three-pointer in the 17th minute. Bath then struck back with a drop-goal from Catt before lock Steve Borthwick powered over from close-in after Catt's superb 60-metre break.
Olly Barkley, who was playing on the wing once again, converted, putting his side ahead at 10-6 before Mercier's third penalty left the half-time score at 10-9 in the visitors' favour, although Bath went into the changing shed a man down after referee Tony Spreadbury yellow-carded front rower John Mallett shortly before the break.
Catt struck another drop-goal soon after the break, putting his side further ahead despite being one-man down, but Azam's try, from an attacking line-out, finally took the wind out of Bath's sails.
Mercier added two more penalties, with one coming from Bath's Barkley, but Garvey's try put the result beyond doubt before Spreadbury had even sounded the final whistle.
Gloucester remain in first-place on the Zurich Premiership standings after 13 wins this season, while Bath head closer to relegation with their 10th loss of the 2002/03 season.
For Gloucester:Tries: Azam, GarveyCons: Mercier 2Pens: Mercier 5
For Bath:Try: BorthwickCon: BarkleyPen: BarkleyDG's: Catt 2