Luke James' late try helped Sale pull off a win at Premiership leaders Bristol that lifted them up to second.
Sharks held their nerve in a dogged encounter, with the lead changing hands four times at Ashton Gate.
Bristol had gone ahead through hooker Bryan Byrne's first-half try before three penalties from AJ MacGinty edged Sale into a 9-7 lead at half-time.
Ioan Lloyd's boot put Bears 13-12 ahead with seven minutes to go but full-back James crossed soon after to win it.
There was still time for MacGinty to slot over his fifth penalty of the evening, which secured Alex Sanderson back-to-back victories in his first two matches as Sale director of rugby.
The result also halted Bristol's run of six successive Premiership wins and reduced their lead to three points. The hosts failed to replicate the dominant display that saw them beat Bath seven days earlier.
They were unable to build on Byrne's early try even against 14 men, after Sale had back-row Jono Ross sin-binned for taking out Nathan Hughes in the air at a line-out.
Referee Luke Pearce disallowed their attempts to add a second try on the stroke of half-time as he ruled the Sale defence held the ball up from another driving maul.
Sharks then limited the hosts to just two penalties from fly-half Lloyd in the second half, before keeping their composure from the restart to set up the winning try.
First MacGinty showed vision with a neat cross-kick towards Simon Hammersley on the right wing. His clever footballing skills enabled Sale to keep the ball alive and force an advantage, before MacGinty kept his composure a couple of phases later to pick out James in the right corner for the try.
Bristol were also hit before the game with news of an injury setback for Fiji centre Semi Radradra, who looks set to be out for up to 10 weeks with a knee problem.
Bristol director of rugby Pat Lam told BBC Radio Bristol:
"It's always a tough game against Sale, because they play a certain way that relies upon physicality, breakdown, defence and they look for penalties.
"We talked about it all week and said the only way we'd lose the game was from silly mistakes and giving away penalties - and that's what happened.
"When you play a team like Sale you have to be so accurate. There were some good moments but certainly to get ourselves ahead and then lose it is disappointing."
Sale director of rugby Alex Sanderson told BT Sport:
"It was a bit touch-and-go throughout that game, credit to Bristol they really make you fight for it.
"On another day, they could've won, but we gutsed it out and ground it out.
"What I'm most pleased with is that we stayed in the moment, we remained calm even though we went behind late on. We focused on the next task to try and set up that try to get us over the line."
Bristol Bears: C Piutau; Naulago, O'Conor, S Piutau (co-capt), Purdy; Lloyd, Uren; Woolmore, Byrne, Afoa (co-capt), Attwood, Holmes, Vui, D Thomas, Hughes.
Replacements: Capon, Y Thomas, Chaparro, Harding, Heenan, Kessell, Bedlow, Leiua.
Sale Sharks: L James; McGuigan, S James, Hill, Yarde; MacGinty, De Klerk; Rodd, Langdon, John, Beaumont, Wiese, Ross (capt), Neild, J-L du Preez.
Replacements: Ashman, Harrison, Oosthuizen, Phillips, Dugdale, Cliff, R du Preez, Hammersley.
Sin-bin: Ross (17 mins).
Referee: Luke Pearce (RFU).