It was a bad-tempered affair, with four players shown the yellow card, but there were also four tries scored.
With their forwards taking control from the outset, Bath opened their account as early as the third minute, Olly Barkley slotting a penalty following a Leicester infringement.
He added his second penalty some four minutes later as Bath pressed deep into Leicester territory, finding plenty of gaps in the visitors' defence.
By contrast, Leicester were forced to survive on scraps of possession as they found themselves outgunned up-front and soon found themselves 13-0 down after Bath scored their first try through Zac Fea'unati, the extras added by Barkley.
Bath scored one more try in the first-half – Matt Perry crossing the line after a cross-field kick from Martyn Wood – to give Bath an 18-3 lead at the break.
Leicester started to come back into the game in the second half, Ramiro Pez kicking two more penalties to add to his first-half effort and then slotting a drop-goal – just one minute after Bath fly-half Malone had kicked one of his own.
Barkley kicked a further penalty and scored a try in the final quarter, before a late rally by Leicester.
It was Austin Healey – playing on the wing – who led the revival, scoring a consolation try in injury-time.
For Bath:Tries: Barkley, Fea'unati, PerryCons: Barkley 2Pens: Barkley 3DG: Malone
For Leicester:Try: HealeyPens: Pez 3DG: Pez