Premiership leaders Leicester Tigers made it eight wins out of eight as they overcame a combative Bath side at Mattioli Woods Welford Road.
Max Clark's try gave Bath an early lead but Nic Dolly and Matt Scott replied for Tigers, who led 20-13 at the break.
Josh McNally went over as the visitors closed to within three points, but George Ford's try extended the lead.
It also took Ford to 100 points this season and Tom Cowan-Dickie secured the bonus point in the final minute.
The win puts Leicester 13 points clear of second-placed Saracens, pending results from the weekend games, with Bath - who now have a 0-7 record - still six adrift of Bristol Bears at the bottom.
Head coach Steve Borthwick made seven changes to the Leicester side as they looked for a ninth successive Premiership victory - a run started at the end of last season - for the first time since 2012.
But Tigers fans hoping for a Bonfire Night spectacular from their table-topping side had to settle for intermittent fireworks in the opening period after Bath responded to Ford's early penalty with a slick move instigated by Danny Cipriani, which led to Clark touching down.
The visitors, who had last won away from home when beating Newcastle in March, went down to 14 men when Will Muir was yellow-carded for a deliberate knock-on and Dolly scored his sixth try of the season from a rolling maul.
Cipriani's penalty made it 10-10 but an incisive break by Dan Kelly enabled Scotland international Scott to run round behind the posts and Ford added the extras.
Leicester number eight Cyle Brink, making his first appearance of the season after recovering from injury, was sin-binned late in the half but Bath could not make the extra man count as Josh McNally's try was ruled out for a double movement by the television match official.
They sent on Nahum Merigan for his Premiership debut after the interval and McNally finally succeeded in getting his name on the scoresheet despite Dan Cole's tackle, with Cipriani converting to make it 23-20.
The visitors had won five of the previous six Premiership meetings between the teams but Ford's try following the third in a sequence of mauls controlled by Dolly gave Leicester breathing space, with flanker Tommy Reffell making 17 tackles and winning four turnovers in a man of the match performance.
Although Cipriani kicked his third penalty for a personal haul of 13 points, Tigers increased the pressure in the final minutes and loan signing Cowan-Dickie forced his way over after replacing Dolly as Leicester made it eight out of eight at the start of a season for the first time in their history.
Tigers head coach Steve Borthwick told BBC Radio Leicester:
"I'm really pleased the players found a way to adapt through the game, and found a way to win, which is great credit to them.
"It certainly wasn't our best performance of the season - Bath played really well and put us under an awful lot of pressure.
"We started the game reasonably well but the middle part became a bit of an arm wrestle.
"There's plenty for us to improve upon and we'll be looking at that over the next two weeks. I'm really pleased the players are getting some reward, I ask them to work exceptionally hard and try to improve and that's what they are doing."
Bath director of rugby Stuart Hooper told BBC Radio Bristol:
"There were a lot of young players (in our side) and we need to celebrate some of the work they did in the game and the impact they had.
"But as a team we have to understand that we can't be as loose as we were at times and giving the ball away, giving up opportunities makes it very difficult to compete (with a side) at the top of the league.
"There is an opportunity now to reflect and make sure we are coming up with some real solid plans moving forward into the next block of Premiership and European games.
"The crowd noise here is good whether it's for you or against you. In moments we made them fight, but I think we ran out of steam a bit in the last 20 minutes."
Leicester: Burns; Porter, Scott, Kelly, Nadolo; Ford (capt), van Poortvliet; van Wyk, Dolly, Cole, Wells, Green, Chessum, Reffell, Brink.
Replacements: Cowan-Dickie, Leatigaga, Heyes, Snyman, Wigglesworth, Hegarty, Murimurivalu.
Sin-bin: Brink (35 mins).
Bath: Bailey; Rokoduguni, Joseph, Clark, Muir; Cipriani, Fox; Schoeman, Dunn, Rae, McNally (capt), Richards, Ellis, de Carpentier, Reid.
Replacements: Du Toit, Cordwell, Verden, Merigan, Cowan, Green, Ojomoh, McConnochie.
Sin-bin: Verden (79 mins).
Referee: Matthew Carley (RFU).