Tom Heathcote kicked all of Bath's points as they scored a 12-9 Aviva Premiership win over Exeter at Sandy Park on Saturday.
Four second-half penalties from Heathcote helped Bath emerge from a real war of attrition with a valuable win.
Exeter were looking to continue their strong start to the season and make up ground on the pace-makers in the Aviva Premiership, while Bath were hoping to push into the top half of the table.
There was little between the two sides for most of the first half, with defences on top and try-scoring opportunities few and far between.
But Exeter held a 6-0 lead at half-time courtesy of two Ignacio Mieres penalties.
First, on 34 minutes, the Argentinian was on target from long range, and then on the stroke of half-time he added a second after Bath were penalised for coming in from the side.
Conditions were not conducive to free-flowing rugby and the second-half unfolded in a similar manner to the first.
Bath rallied against the deficit in the early stages following the restart and were level by the end of the third quarter.
Heathcote's first successful penalty of the evening was kicked following an infringement at the line-out, and he added a second eight minutes later following more Bath pressure.
Mieres gave Exeter the lead for a second time on 62 minutes, but it was Heathcote who kept his nerve in the closing stages to seal the win for the visitors.
Heathcote booted his side level on 64 minutes, and then a penalty for an infringement at the scrum five minutes time gave the fly-half the opportunity he needed to strike Bath to victory.
Pens: Mieres 3
Pens: Heathcote 4
Exeter: 15 Phil Dollman, 14 Gonzalo Camacho, 13 Nic Sestaret, 12 Jason Shoemark, 11 Matt Jess, 10 Ignacio Mieres, 9 Haydn Thomas, 8 Richard Baxter, 7 James Scaysbrook, 6 Tom Johnson, 5 Peter Short, 4 Tom Hayes (capt), 3 Craig Mitchell, 2 Chris Whitehead, 1 Hoani Tui.
Replacements: 16 Neil Clark, 17 Chris Budgen, 18 John Andress, 19 Aly Muldowney, 20 James Phillips, 21 Kevin Barrett, 22 Gareth Steenson, 23 Bryan Rennie.
Bath: 15 Sam Vesty, 14 Matt Banahan, 13 Matt Carraro, 12 Olly Barkley, 11 Tom Biggs, 10 Tom Heathcote, 9 Michael Claassens, 8 Simon Taylor, 7 Francois Louw (capt), 6 Ben Skirving, 5 Ryan Caldwell, 4 Dave Attwood, 3 Anthony Perenise, 2 Lee Mears, 1 Nathan Catt.
Replacements: 16 Ross Batty, 17 Charlie Beech, 18 Duncan Bell, 19 Guy Mercer, 20 Carl Fearns, 21 Chris Cook, 22 Olly Woodburn, 23 Jack Cuthbert.
Venue: Sandy Park
Referee: David Rose
Assistant referees: Peter Huckle, Paul Dix