Matt Banahan powered over early on for the hosts at The Rec - the wing's 50th try for the Blue, Black and Whites - as Bath took a 10-3 lead into the break.
Bath then struggled before Kahn Fotuali'i raced clear for a second try and Kane Palma-Newport bundled over.
Co-captain George Ford landed a 100% record from the tee as Bath closed to within a point of leaders Wasps.
Bath, who finished a disappointing ninth last season after reaching the Premiership final in 2015, have now won five of their opening six league matches.
Man-of-the-match Banahan was once again instrumental and it was the versatile 29-year-old, playing at inside centre, who gave his side a third-minute lead, slicing apart the Sale defence and powering through the final tackle to finish off a rousing attack and claim his fourth try of the season.
However, Todd Blackadder's side looked far from comfortable with ball-in-hand in the face of Sale's committed tackling either side of the break, until Samoa scrum-half Fotuali'i's 40-yard run and touch down just after the hour mark.
Bath, whose defence was rarely threatened by Sale, had 11 players unavailable including England's latest injury victim Anthony Watson, but welcomed back Jonathan Joseph from a dead leg.
The England centre impressed, making several bursting runs with international boss Eddie Jones watching on in the stands.
Jones would have also been encouraged by what he saw from the boot of fly-half Ford who nailed six kicks from six to make the final advantage bigger than the performance suggested.
Bath: Homer; Rokoduguni, Joseph, Banahan, Brew; George Ford (co-capt), Fotuali'i; Catt, Dunn, Thomas, Stooke, Attwood, Garvey (co-capt), Ellis, Mercer.
Replacements: Batty, Auterac, Palma-Newport, Ewels, Mercer, Cook, Hastings, Williams.
Sale Sharks: McGuigan; Addison, James, Leota, Odogwu; MacGinty, Phillips; Lewis-Roberts, Briggs, Mujati, Evans, Mills, Neild, Seymour, Beaumont (capt).
Replacements: Harrison, Aulika, Ostrikov, Lund, Pearce, Mitchell, Mugford, Haley.
Referee: Tom Foley.
For the latest rugby union news follow @bbcrugbyunion on Twitter.
Bath moved up to second in the early-season Premiership table with a hard-fought victory over Sale Sharks.