|Sale (3) 15|
|Pens: Cipriani 4 Drop-goal: Cipriani|
|Wasps (6) 9|
|Tries: Pens: Gopperth 2 Drop-goal: Daly|
Sale overtook Wasps in the Premiership table as Danny Cipriani won a kicking contest at the AJ Bell Stadium.
After Cipriani's early penalty, Wasps led 6-3 at the break when stand-off Jimmy Gopperth's penalty was followed by centre Elliott Daly's drop-goal.
But Cipriani levelled it again with the first of three second-half penalties.
Gopperth kicked a second penalty but Cipriani's drop-goal secured a third Premiership win of the season to lift them also above Bath into seventh.
Dai Young's side had started the day in eighth place, hunting a fourth successive away win. But, instead, amid a constant drizzle which made handling treacherous, they drop to ninth after slumping to their fifth successive defeat at Sale's Salford home.
In fact, Wasps have only won once on Sale soil in the last 10 seasons, a 25-24 victory at Edgeley Park in October 2010.
|Sharks have too much bite for Wasps|
|Sale have now won seven of their last eight meetings with Wasps in all competitions, a run broken only by their 41-16 defeat in Wasps' second game at their Ricoh Arena home a year ago.|
Sale twice came close to scoring in a bright start, when centre Will Addison chose to ignore an overlap, and then when full-back Mike Haley's thrilling run was halted by a brave tackle from former Sharks man Rob Miller.
Wasps could then have scored after a blistering break from centre Daly cut open Sale's defence but full-back Miller spilled the ball crossing the line and it was ruled out after consulting the TMO.
But they got on the scoreboard two minutes later with a Gopperth penalty before Daly's deft drop-goal earned a half-time lead.
Cipriani, potentially in line for an international recall under new England coach Eddie Jones after being left out of Stuart Lancaster's World Cup squad, got Sale back level on 56 minutes.
He then put his side back in front to the delight of Sale's biggest home crowd of the season, 7,619.
Wasps refused to buckle as a fine up-and-under from Gopperth opened up a break for replacement Kearnan Myall which led to a Sale foul allowing Gopperth to level again with the boot.
Sale then thought they had scored when replacement scrum-half Peter Stringer darted over but, although it was disallowed after consulting the TMO, referee Luke Pearce did award Sale a penalty for an earlier infringement.
Cipriani's nerve stood up to the test as he booted over his fourth penalty out of four before again finding the posts with that low, late drop-goal.
Sale director of rugby Steve Diamond:
"Danny Cipriani played really well. He's pushed into that potential England squad whenever it is announced. You learn more playing for a club like Sale where it doesn't always go well.
"You have to learn how to develop as a player and Danny has done that over the past two or three years, which is why he wants to stay around here for the next couple of years.
"He's a leader by way of his skill sets but also by way of his influence. In these conditions he knows his skill isn't always going to win us games. Instead he needs to put us in field positions. It's so rare these days but so valuable. He has the full skill set.
"He's more mature as a player and he understands what he has got to do. He has worked really hard on his kicking over the past few weeks and his defence has also come on leaps and bounds and he is a real team player for us."
Wasps director of rugby Dai Young:
"Given the conditions, there were never going to be many scoring opportunities but, from our point of view, I was really disappointed with our skill sets.
"It was obviously disappointing but we made far too many errors. We made something like 18 handling errors.
"And I have to say that I thought they also wanted it a bit more. We've got a losing bonus point and that is probably as much as we deserve."
Sale: Haley; Arscott, James, Tuitupou, Addison; Cipriani, Cusiter; Harrison, Taylor, V Cobilas, Evans, Mills, Braid, Seymour, Beaumont.
Replacements: Neild for Braid (41), Mujati for V Cobilas (58), Ostrikov for Mills (64), Jennings for Tuitupou (70), Stringer for Cusiter (70).
Not Used: Lewis-Roberts, Easter, Ford.
Wasps: Miller; Halai, Daly, Jacobs, Piutau; Gopperth, Simpson; Mullan, Johnson, Cittadini, Launchbury, Gaskell, Haskell, G Smith, Jones.
Replacements: Shervington for Johnson (54), Myall for Gaskell (58), Robson for Simpson (64), Young for Jones (64), McIntyre for Mullan (67), Swainston for Cittadini (74).
Not Used: Jackson, Tagicakibau.
Referee: Luke Pearce.
For the latest rugby union news follow @bbcrugbyunion on Twitter.