Bath won another hard-earned battle of the boot against Exeter as they scraped a 12-9 Premiership win at Sandy Park for the second year in succession.
Exeter have never beaten Bath in the Premiership, but looked on course when Ignacio Mieres kicked two penalties in six minutes just before the break.
Tom Heathcote then brought it level with the first of his four penalties.
But, although Mieres kicked Exeter back in front, Heathcote added two more, the winner coming six minutes from time.
Remarkably, that matched the scoreline in last season's corresponding fixture.
Having won 15-12 at Wasps last weekend, Exeter have now gone two entire matches without either scoring or conceding a try. But they did at least earn a losing bonus point, despite their fourth home defeat of the season.
The Devon side, who also lost at home to Bath in the LV= Cup last month, have to look back to January 1978 for their last victory against their West Country rivals.
Bath's fifth win in six matches, in all competitions, moves them up to eighth in the Premiership table, now 11 points clear of danger.
Bath centre Olly Barkley was first to try his luck at goal with a 45-metre penalty attempt that fell short. And the visitors looked to have scored a try after 10 minutes, only for referee David Rose to rule that Barkley's long pass out to wing Tom Biggs had gone forward.
But, with six first-half minutes remaining and Exeter applying pressure, Bath were penalised in front of the posts, skipper Francois Louw getting caught on the wrong side of a ruck, and Mieres finally kicked the Chiefs in front.
Louw was then again penalised for coming in at the side of a ruck and Argentinian half-back Mieres saw his kick, from a similar position, bounce over off the upright for a 6-0 interval lead.
After a change of kicker to Heathcote, a full-time student at the University of Bath who has just earned a new three-year contract, Bath pulled a penalty back when Exeter were penalised at the breakdown early in the second half.
And, after Mieres had fired a third penalty attempt wide, 15 metres in from the right touchline, Heathcote landed a second kick to level the scores at 6-6 with 20 minutes remaining.
Mieres, who appeared to be struggling after taking an earlier knock, then landed a 40-metre kick from close to the left touchline before being replaced by Gareth Steenson.
But, from a quick restart by Bath, and with the home side still sorting their replacements, Exeter prop Hoani Tui was penalised for offside and Heathcote levelled once more.
And, when Exeter were penalised just outside their own 22, Heathcote made it four successful kicks from four attempts to claim victory.
VIEW FROM THE DRESSING ROOM
Exeter coach Rob Baxter:
"I was disappointed. Not disappointed that we lost a game of rugby, because we have learned to deal with that over the years. It is just disappointing that we didn't play as well as we could.
"I am not taking anything away from Bath. They probably feel the same, but I think we made too many mistakes, we coughed up too much soft ball and gave away too many soft penalties.
"Sometimes you lose games and it is just tough but you have played well and given it everything but that hasn't happened in this game but it is not the end of the world."
Bath defence coach Brad Davis:
"It was close in terms of the scoreline but I think over the 80 minutes we deserved the result. We were the side trying to play the most rugby and I thought the foundation was laid in our defence.
"The forwards, in the last 20 minutes especially, were outstanding in their driving play and the scrum.
"A lot of credit has to go to the players because their character was absolutely first rate."
Exeter: Dollman; Camacho, Sestaret, Shoemark, Jess; Mieres, Thomas; Tui, Whitehead, Mitchell; Hayes (capt), Short; Johnson, Scaysbrook, Baxter.
Replacements: Muldowney for Short (59), Clark for Whitehead (59), Steenson for Mieres (63), Barrett for Thomas (63), Budgen for Mitchell (70), Phillips for Johnson (70), Rennie for Sestaret (77).
Not Used: Andress.
Bath: Vesty; Banahan, Carraro, Barkley, Biggs; Heathcote, Claassens; Catt, Mears, Perenise; Attwood, Caldwell; Skirving, Louw (capt), Taylor.
Replacements: Bell for Perenise (62), Cuthbert for Barkley (65), Fearns for Caldwell (69), Beech for Catt (72).
Not Used: Batty, Mercer, Cook, Woodburn.
Referee: David Rose (RFU).