Bath wrapped up a season of decidedly mixed fortunes with a rare five-pointer against Worcester.
Skipper Zak Feaunati led the way with two of their four tries but Worcester were equally dangerous and had a strong case for a penalty try in the closing seconds.
It was all action from the kick-off, a loose pass from Olly Barkley offering Worcester the lineout throw from which they scored their first try after just two minutes.
Centre Thomas Lombard eventually got the touchdown in the corner after a multi-phase build-up but James Brown, deputising at fly-half for the injured Shane Drahm, could not complete the conversion.
They could have added another within three minutes but flanker Sam Harding was denied by a last-ditch tackle from Andy Williams and then conceded a penalty for not releasing the ball.
On a firm pitch and with nothing at stake there was plenty of ambition on both sides but without the ball skills to match.
Bath exploited their dominance in the scrum to win a penalty which Chris Malone landed from close range on 11 minutes. A brilliant break-out from their own line six minutes later might then have brought a try but Malone spilled the ball in the tackle.
Such was the frenetic nature of the contest that referee David Rose eventually got in the way of a promising Worcester attack and the game degenerated into a session of drop passes.
Bath eventually reverted to a more pragmatic approach and Feaunati touched down after a well-controlled drive from a line-out on the half hour. Malone’s conversion was wide however.
Worcester responded by mounting a heavyweight assault on the home line but another spilled pass lifted the siege.
They did not have long to wait however for their second try as Bath turned over the ball in midfield and centre Dale Rasmussen finished off in the left corner to see Worcester go in at the break 10-8 ahead.
Lombard was held up over the line just after the restart but Bath responded with two tries in three minutes.
Feaunati launched himself off the back of a scrum for the first and then Joe Maddock burst through to the posts for another, this time converted by Malone.
Worcester took up the challenge by retaking the lead with two quick scores themselves – the first on 59 minutes then Lombard finished off a length of the field move begun by Harding, who then scored himself as Bath’s defence began to creak.
Back they came however with a try by Michael Stephenson on 66 minutes earning Bath a bonus point and edging them back into the lead at 25-22.
Worcester replacement Chris Hallam thought he had earned a penalty try in the last minute when he appeared to be obstructed by Peter Short but a five-metre scrum was the decision and Bath held out.