|Harlequins: (3) 16|
|Try: Visser Con: Evans Pens: Evans 3|
|Sale: (7) 14|
|Tries: Braid, James Cons: Cipriani 2|
|Relive Friday's Premiership rugby|
Harlequins produced a resolute second-half performance to seal victory over Sale Sharks at the Twickenham Stoop.
Sale enjoyed the better of an error-strewn first half and led at the break through captain Dan Braid's try.
Tim Visser touched down to put Quins in front following a pinpoint crossfield kick from fly-half Nick Evans.
Sam James dived over to bring the visitors back to within two points before Danny Cipriani missed a penalty to put Sale ahead as Quins held on.
England reject Cipriani, whose game-management and kicking were magnificent for most of the evening, sliced his effort just wide of the left post eight minutes from time and then miscued an attempted last-minute drop-goal under pressure.
The defeat was harsh on a Sharks side who dominated large periods of play as Harlequins' back-line struggled to get into the match.
It was the visitors who deservedly went in front midway through the first half as Cipriani launched a huge kick towards Quins' try-line which Visser spilled, and Braid snapped up the loose ball to cross the whitewash.
The hosts' improved performance straight after the break proved to be the turning point of the game, as Scotland winger Visser did well to cling onto Evans' wonderful 40-yard crossfield kick and dive over.
Sale had lost the inspirational Braid to injury and former New Zealand international Evans added two penalties either side of the try as Quins took a 16-7 lead into the final 15 minutes.
Centre James, 21, jinked past a couple of defenders for his second try of the season to bring Sale back into the game, but Cipriani was unable to complete the comeback as Quins ran down the clock for their third win in four games.
Sale, who have only won once away from home since last November, take a losing bonus point back to Greater Manchester and move up to fifth in the Premiership table, while Quins are up to second.
Harlequins director of rugby Conor O'Shea:
"We've started the season well but tonight was not a performance we can be proud of at all.
"I don't care about winning and losing and I never have - I care about the way you play and the energy you bring.
"For 20 minutes in the second half we did well to get a 16-7 lead but then we let it go.
"We said before the game we wanted to show people what we're about and there won't be too many people afraid.
"We've got a win which we potentially didn't deserve, but I know where we're at as a team because of how well we've played over the last few weeks."
Sale director of rugby Steve Diamond:
"We were unlucky with a lot of decisions not going our way, we've got to be pleased with our performance but we just didn't get the end result.
"We know we're a competitive side, we didn't get the rub of the green tonight - one or two little things let us down, which resulted in us not winning the game.
"But you know what, we can't really whinge. Fair play to Quins, they're a good side and to get a bonus point from here, some people would be grateful for and I've got to be."
Harlequins: Brown; Yarde, Lowe, Hopper, Visser; Evans, Care (capt); Marler, Ward, Collier, Matthews, Twomey, Clifford, Robshaw, Easter.
Replacements: Gray, Lambert, Sinckler, Clifford, Chisholm, Dickson, Botica, Lindsay-Hague.
Sale Sharks: Haley; Arscott, James, Tuitupou, Edwards; Cipriani, Stringer; Harrison, Taylor, Cobilas, Evans, Mills, Braid (capt), Ioane, Beaumont.
Replacements: Briggs, Flynn, Mujati, Ostrikov, Lund, Mitchell, Macleod, Leota.
For the latest rugby union news follow @bbcrugbyunion on Twitter.