Harlequins returned to the top of the Premiership table as the champions kept up their 100% start to the season.
Quins ran in first-half tries from winger Ugo Monye, his third in two matches, and centre Jordan Turner-Hall.
Lock George Robson then touched down before full-back Mike Brown's last-minute try made it a bonus-point victory, Nick Evans converting to complete a 17-point haul with the boot.
Richie Vernon scored Sale's try, Danny Cipriani also slotting three penalties.
The battling Sharks, who have now lost their opening three games, were unlucky to be on the receiving end of such a heavy defeat as they led 8-7 on the half hour.
After Monye's early pushover try, a clever pass from Cipriani, who had reduced the arrears with a penalty, allowed Sam Tuitupou to make a big hole in the home defence, the ball was recycled and Vernon raced beyond the cover defence to score.
But they had no answer to the tempo of Quins' game once Turner-Hall's try had put the home side back in front.
The returning Danny Care's swift pass sent Evans sailing though a huge gap in the visitors' defence and Turner-Hall was on hand to collect the scoring pass.
After Robson had crashed over from short range with eight minutes left, Quins had to wait until the dying seconds to secure their all-important fourth try, but they had created enough chances to have secured their bonus point far earlier.
Nevertheless, they have now made the perfect start to their title defence, with three successive bonus-point wins in which they have run in 15 tries.
And that has taken Conor O'Shea's side two points clear of nearest challengers Northampton going into next weekend's trip to Leicester.
VIEW FROM THE DRESSING ROOM
Harlequins director of rugby Conor O'Shea:
"I'm pretty happy to take 15 points from the 15 points available, but it is very early days and we will have to improve a hell of a lot [against Leicester] because it's different gravy up there at Welford Road.
"It was a far from perfect performance. We didn't protect the ball enough and started to force it too much. There was one offload too many and we lost the penalty count 12-10 which is unusual for us.
"However, we like playing with tempo, the players like playing with risks and wouldn't enjoy it if they didn't do so."
Sale coach Bryan Redpath:
"The scoreline is not a fair reflection. However, we coughed up too much possession and gave away a soft try just before half-time.
"Danny Cipriani missed a couple of pots at goal but we looked dangerous in parts. Discipline let us down and our set-piece didn't function."
"Our attack was better today but we conceded too much in defence. However, we have started the season by playing two of last season's top five away from home."
Harlequins: Brown; Williams, Lowe, Turner-Hall, Monye; Evans, Care; Marler, Gray, Johnston, Matthews, Robson, Guest, Robshaw, Easter.
Replacements: Fa'asavalu for Guest (56), Dickson for Care (57).
Not Used: Buchanan, Marfo, Collier, Browne, Clegg, Hopper.
Sale: Miller; Brady, Leota, Tuitupou, Cueto; Cipriani, Peel; Lewis-Roberts, Ward, Cobilas, Gray, Myall, Gaskell, Seymour, Vernon.
Replacements: Thomas for Cobilas (47), Easter for Gaskell (49), Cliff for Peel (59), Dickinson for Roberts (63), Jennings for Leota (69), MacLeod for Cipriani (71), McKenzie for Gray (75),
Not Used: Taylor.
Referee: Llyr Apgreaint-Roberts (RFU).