Michael Claassens and Tom Biggs each scored a brace of tries as Bath continued their quest for a top-six place in the Aviva Premiership Rugby table with a bonus-point victory over Worcester.
With Matt Banahan grabbing the fifth try, Bath celebrated their sixth win out of seven in all competitions and are mounting their customary late charge for Heineken Cup qualification. And they still have another route to Europe's premier tournament through the LV= Cup, meeting Leicester at the Rec next Friday night.
Worcester battled gamely but lost the match in a 12-minute spell in the first half when they conceded three tries.
Bath made two changes to their starting line-up from last weekend's win at Exeter, both in the front row. Charlie Beech came in at loosehead for Nathan Catt and 37-year-old Duncan Bell replaced Anthony Perenise on the other side. Wing Tom Arscott returned for Worcester but former Bath legend Richard Hill was forced to name a side without lock James Percival (virus), Errie Claassens (knee), Marcel Garvey (concussion) and Joe Carlisle (hip).
Worcester were soon on the defensive but an over-ambitious pass by skipper Francois Louw was intercepted just short of the line. Instead it was the visitors who scored first as lively flanker Jake Abbot won a turnover and quick hands allowed Chris Pennell to release Arscott for the try.
Andy Goode added the conversion but Bath recovered their composure and set up a good attacking position through Heathcote's boot. Pennell could only clear to touch and the home side's line-out provided more quality ball for a sustained attack before Biggs squeezed in at the left corner. Heathcote's impressive conversion levelled the scores after 18 minutes.
Six minutes later they followed up with a second try as Claassens tapped a free-kick from which Banahan eventually crashed over at the posts courtesy of a neatly disguised pass from Louw. Heathcote added the conversion.
Nothing was going right for Worcester and a hack through by Banahan rebounded off the corner flag, forcing Pennell to kick it dead for a five-metre scrum.
Another multi-phase, close-range assault ended with Claassens forcing his way over on the half-hour, with Heathcote kicking his third conversion in 12 minutes to give Bath a 21-7 lead. Goode replied a couple of minutes later with a penalty and Bath had to be content with a 21-10 lead at the break.
The second half did not spark into life until Bath used a scrum in midfield to launch an attack which ended with Banahan crashing over for what seemed to be a try, but referee Greg Garner was knocked out of the way too, leaving Bath with a five-metre scrum.
However, it only delayed the inevitable as Claassens scrambled over for his second try and Heathcote converted.
Worcester sent on six replacements inside the next nine minutes and the fresh blood gave them the impetus to mount their first serious attack of the half.
Bath mounted a fierce rearguard action for 10 minutes but eventually number eight Blair Cowan found Miles Benjamin running a sublime angle and the right wing went under the posts unopposed. Danny Gray kicked the conversion and Worcester were only 11 points adrift and sniffing a losing bonus point.
However, Heathcote kicked a 40-metre penalty two minutes from time and Biggs stretched his legs to sprint away to the corner for an unconverted try on the final whistle.