Exeter guaranteed themselves a place in the Gallagher Premiership semi-finals with a hard-fought 29-10 victory over Bath.
It is the fourth year in succession the Chiefs have earned a play-off spot, with the league leaders securing their berth after outscoring their West Country rivals by four tries to one at Sandy Park.
Ollie Devoto, Olly Woodburn and Jack Yeandle all crossed to add to a penalty try award, with Joe Simmonds converting two as well as slotting over a penalty.
Bath had the lion's share of possession but they only could manage a single try from Nathan Catt and five points from the boot of Rhys Priestland.
Gareth Steenson was a late withdrawal for Exeter with a calf injury so Simmonds was promoted from the bench to replace him.
Chiefs soon suffered a further setback when they fell behind after four minutes.
A superb run from Ruaridh McConnochie put the defence on the back foot and when the hosts were penalised, Priestland kicked a simple penalty.
Minutes later, Bath should have had the game's first try when McConnochie burst down the right flank, but Zach Mercer dropped a decent pass with Will Chudley free outside him.
Simmonds then tied the scores with a ninth-minute penalty before Bath lost prop Henry Thomas to a leg injury, with Anthony Perenise taking his place.
Exeter wing Woodburn had a try ruled out by the TMO for a double movement before Bath regained the lead with a 14th-minute try.
An excellent break from Jonathan Joseph got his side to within five metres of the line and, after a period of pressure, Catt forced his way over.
Exeter hit back in the 26th minute with their opening try.
On his own 22, Bath full-back Tom Homer was stripped of possession before excellent contributions from Jack Nowell and Simmonds sent Devoto over.
Priestland missed a couple of touches to put pressure on his side and Chiefs capitalised to take the lead for the first time when a neat off-load from Don Armand gave Yeandle an unopposed run-in. Simmonds' conversion gave Exeter a 17-10 half-time advantage.
After the restart, Bath dominated the opening 15 minutes but they blew a number of good opportunities.
They brought on Sam Underhill and Beno Obano in the pack in the hope of changing their fortunes but it did not pay dividends as Exeter picked up the next score with a penalty try award after a collapsed scrum.
Obano was yellow carded for the offence but it was not until his return that Exeter sealed victory with Woodburn strolling over with five minutes to go.
ga('create', 'UA-72310761-1', 'auto', {'name': 'pacontentapi'});
ga('pacontentapi.set', 'referrer', location.origin);
ga('pacontentapi.set', 'dimension1', 'By Press Association Sport staff');
ga('pacontentapi.set', 'dimension2', '7962cf1a-645b-413e-b953-e613ca43f239');
ga('pacontentapi.set', 'dimension3', 'paservice:sport,paservice:sport:uk');
ga('pacontentapi.set', 'dimension6', 'story');
ga('pacontentapi.set', 'dimension7', 'composite');
ga('pacontentapi.set', 'dimension8', null);
ga('pacontentapi.set', 'dimension9', 'sport:rugby-union');
ga('pacontentapi.send', 'pageview', { 'location': location.href, 'page': (location.pathname + location.search + location.hash), 'title': 'Exeter seal semi-final spot with victory over battling Bath'});