Gloucester: (26) 32
Tries: Thorley, McGuigan, Ackermann, Atkinson Pens: Carreras 2 Cons: Carreras 3
Sale: (10) 20
Tries: Warr, Taylor Pens: R du Preez 2 Cons: R du Preez 2
Gloucester ended a club record losing run of nine Premiership games with a bonus point 32-20 victory over Sale.
Fly-half Charlie Atkinson scored the fourth try on his debut before half-time to follow Ollie Thorley, George McGuigan and Ruan Ackermann, with Gus Warr replying for Sale.
Two penalties and a Tommy Taylor try helped Sharks cut the deficit to 29-20.
But the hosts held firm as Santiago Carreras added a second penalty in the final minute to secure a crucial win.
Gloucester last won in the league on 20 October when they beat Newcastle, although they are unbeaten in all other competitions this season - having reached the semi-finals of the Premiership Rugby Cup next month and won all of their European Challenge Cup group games to cruise through to the knock-out stages.
They stay ninth in the table as the league breaks for seven weeks for the Six Nations, but move up to 22 points.
Last year's Premiership finalists Sale are still without a win in 2024 and stay seventh, 10 points ahead, as they fell to their fifth consecutive defeat in all competitions.
Gloucester winger Thorley brilliantly denied Cobus Wiese a certain try five minutes in, rolling the lock over the line.
Two minutes later Thorley had his name on the scoresheet at the other end, scooping up the ball inside the Cherry and Whites' 10 metre line and darting the length of Kingsholm's Shed stand before cutting inside under the posts.
Warr levelled for the Sharks from close range but when Sam Dugdale was sent to the sin bin for cynically kicking the ball away when Gloucester were in attack, the hosts took advantage.
McGuigan rolled over from the line-out and maul that followed, and Ackermann cut an excellent line through the Sale defence to make it 19-7.
Rob du Preez's penalty narrowed the deficit but Atkinson added Gloucester's bonus point on his first start since signing from Leicester before Christmas, touching down after namesake Seb Atkinson made the initial line break.
Sale enjoyed a lot of territory the first 15 minutes of the second half but failed to take anything more than a second penalty from the boot of Du Preez.
They were unravelled again by another card as full-back Joe Carpenter was sent to the bin for a clash in the air with opposite number Carreras, who kicked the subsequent penalty to make it 29-13.
Yet when Gloucester captain Lewis Ludlow was also binned for bringing down a maul, it gave Sale an opening back in and replacement hooker Taylor barged over on 67 minutes to close the gap to nine points and keep home fans nervous.
After falling the wrong side of narrow defeats by seven, six and two points in their previous three league games, this time Gloucester managed the pressure as the clock ran down and Carreras kicked a last-minute penalty.
Gloucester director of rugby George Skivington told BBC Radio Gloucestershire:
"It feels good to win in the Premiership, I think that's nice to see the end of that run - it's been painful. I think in reality the last three Prem games before this one, we'd been in the fight, we'd looked like a good team, we'd just fallen the wrong side.
"Certainly the six before that, barring Exeter away, there was a lot of work to do. I'm very proud of what the boys showed. I think the last eight weeks, they've committed to something, they've worked hard and they deserved the reward.
"The Premiership is ruthless, there's not many games this year and a lot of them have passed by so it was really important we go into a good break but win that one and win it well.
"I thought Charlie [Atkinson] pulled the strings really well for his first game, he was in the deep end a little bit but he really took command and did a great job and I thought Caolan [Englefield] did at nine as well, so lots of strong performances in that first half."
Sale director of rugby Alex Sanderson said:
"Our defence was poor in the first half, our set-piece was poor throughout and they feasted on a couple of opportunities we gave them.
"We've always prided ourselves on our defensive performance but we are shipping too many points lately. We have shifted our gameplan as we wanted to improve our attacking game but we've lost our way a bit.
"The effort was fantastic but we need to be better as coaches and I'll take my share of the blame for that, but we are still a better side than we showed today.
"You are only as good as your last game so you want to play again as soon as you can but realistically we need a break from playing.
"The lack of bonus points is a concern as we've won as many games as others but still find ourselves down the table."
Gloucester: Carreras, Hearle, Harris, S Atkinson, Thorley; C Atkinson, Englefield; Ford-Robinson, McGuigan, Gotovtsev, Clarke, Alemanno, Ackermann, Ludlow (c), Mercer.
Replacements: Blake, Elrington, Knight, Tuisue, Clement, Varney, Llewellyn, Hathaway.
Sin bin: Ludlow (64 mins)
Sale: Carpenter, Veainu, James, Bedlow, Reed; R du Preez, Warr; McIntyre, Creevy, Schonert, Wiese, Beaumont, Van Rhyn, Dugdale, D du Preez.
Replacements: Taylor, Onasanya, Harper, Bamber, Birch, Thomas, Curtis, Ma'asi-White.
Sin bin: Dugdale (17 mins), Carpenter (57 mins)
Referee: Luke Pearce