Fly-half Freddie Burns kicked 19 points to send Gloucester third in the Premiership and keep Sale rooted to the bottom of the table.
Burns landed five penalties in a first half dominated by Sale mistakes before Danny Cipriani converted a late kick for the visitors.
Gloucester continued to dominate at the set piece after the break and their solid defending snuffed out Sale.
Akapusi Qera's score and a penalty try rounded off an emphatic victory.
Another eye-catching performance by Burns provided more evidence for his case for England inclusion.
His accuracy with the boot, vision and invention in poor conditions at Kingsholm ensured Gloucester's lead was never in danger.
The game was Sale coach Bryan Redpath's first return to Kingsholm since he resigned from his head coach role with the Cherry and Whites in April.
But it was not a happy return for the former Scotland international as his side struggled in the set piece throughout the 80 minutes - conceding 10 penalties at the scrum and losing four of their own line-outs.
A string of Sale penalties handed Burns five shots at goal - all of which he converted to give the hosts a 15-0 lead after half an hour.
But the Sharks had the two best try-scoring opportunities before the break.
The first came as Sale worked Sam Tuitupou clear in the 15th minute but the centre elected to kick into the corner with Will Addison on his shoulder and plenty of support.
The second was a poor call from referee Luke Pearce who called play back for a shoulder charge on Dwayne Peel just as Charlie Amesbury was about to gather his grubber kick and go over in the corner.
Cipriani appeared at times to be working on a different wavelength to his team-mates and a series of risky passes went awry, much to the delight of The Shed.
But the stand-off was playing behind a scrum going backwards and he converted his first shot at goal to make get Sale on the board just before half-time.
The visitors started more brightly after the break, carving a few early openings, the best coming from Tuitupou, although they failed to break through.
Gloucester lost their hooker Huia Edmonds four minutes into the half, as he was carried from the field on a stretcher and wearing a neck brace, with Koree Britton his replacement.
Sale were enjoying the best of the territory and possession but Gloucester's defence held firm and their scrum continued to dominate.
Accordingly the Sharks brought on a whole new front row but it was quick thinking by Burns that lead to the opening try.
His quick tap resulted in a line-out five metres out which was cleverly worked short to Jim Hamilton and two phases on Jimmy Cowan's delayed pass allowed Quera to crash through.
Burns converted, Sale brought on a new half-back duo in Will Cliff and Nick Macleod but it was Gloucester's dominance at the scrum that counted.
As Sale collapsed yet another scrum referee Pearce decided that was enough and awarded the penalty score.
VIEWS FROM THE DRESSING ROOM
Gloucester director of rugby Nigel Davies told BBC Radio Gloucestershire:
"I thought Freddie Burns managed the game very well. He is really maturing as a player and I think he's very special.
"The back row were superb today, our scrum had a big bearing on the outcome of the game.
"It was key in these conditions that you play your field position because it's easier to drop the ball, particularly with the tackles.
"I thought we managed better field position in the last quarter and as a result we played a little bit more."
Sale chief executive Steve Diamond said:
"I find it difficult that at 10 of Gloucester's scrums, we give 10 penalties away which sounds pretty ridiculous and the interpretation of that is difficult.
"In the second half, we had to convert some of the possession we had into points.
"Our average penalty count this season is 10 (given away) and it was 21 today which says something about the (referee's) interpretation."
Gloucester: Cook; Sharples, Tindall, Twelvetrees, Monahan; Burns, Cowan; Murphy, Edmonds, Harden; James, Hamilton; Savage, Qera, Kalamafoni.
Replacements: Molenaar for Tindall (78), Robson for Cowan (67), Wood for Murphy (50), Britton for Edmonds (50), Knight for Harden (59), Moriarty for Hamilton (75), Cox for Kalamafoni (67).
Sale: Miller; Amesbury, Addison, Tuitupou, Cueto; Cipriani, Peel; Harrison, Taylor, Buckley; McKenzie, Myall; Vernon, Seymour, Powell.
Replacements: Shepherd for Addison (78), MacLeod for Cipriani (63), Cliff for Peel (63), Roberts for Harrison (55), Ward for Taylor (55), Cobilas for Buckley (55), Gaskell for McKenzie (61).
Ref: Luke Pearce (RFU).