|Worcester (3) 20|
|Tries: Mama, Penalty, Dowson Con: Mills Pen: Heathcote|
|Harlequins (17) 24|
|Tries: Walker 2, Wallace Cons: Evans 3 Pen: Evans|
Harlequins earned a 15th straight league win over Worcester despite a spirited comeback from Warriors.
Charlie Walker danced through to give Quins an early lead at Sixways before Luke Wallace bundled over as the visitors led 17-3 at half-time.
Walker added his second try following Danny Care's fine kick along the turf.
Worcester earned a bonus point through Marco Mama's score, a penalty try and Phil Dowson's try but were unable to overturn a 21-point deficit.
There was little sign of what was to come from Warriors in the final 30 minutes when Walker's converted try put Harlequins 24-3 in front shortly after the break.
As the visitors started to lose their discipline in the muddy conditions, Warriors' pack began to dominate and ran in 17 unanswered points.
But, with just over 10 minutes left for the hosts to find another try, Quins' defence held firm for a victory that moves them up to third in the Premiership table.
Worcester have not beaten Harlequins since a 15-9 victory at The Stoop in February 2005 and their task was made even more difficult when wing Walker exchanged passes with Ross Chisholm to score after just three minutes.
George Lowe was sent to the sin-bin for Quins for coming in at the side of the ruck, but Warriors were only able to add a Tom Heathcote penalty with their man advantage.
Flanker Wallace extended the lead following a big drive from the line-out which Nick Evans converted to take him past 1,500 points in the Premiership.
Harlequins continued their dominance after the break as Walker did well to pick up Care's clever grubber kick and touch down before Mama was driven over for Warriors.
However, as lack of discipline began to creep into Quins' game, Jamie Roberts was shown a yellow card, leading to a penalty try which Ryan Mills converted to reduce the arrears to just nine points.
Worcester captain Dowson crossed in the corner to set up a fascinating finale, but it proved to be the final score of a thrilling match.
Worcester director of rugby Dean Ryan:
"I'm really disappointed. I'm sick of being described as plucky losers. We have to change that tag. I'm fed up of being close.
"Our kicking was woeful in the first half. We were trying to thread the ball through the eye of a needle. The first 40 minutes just wasn't good enough.
"We haven't got the experience of a Nick Evans or a Danny Care, who moved us around with some pin-point kicking. Care's kick to create their third try was outstanding."
Harlequins director of rugby Conor O'Shea:
"For the first 45 or 50 minutes we were outstanding. We were disciplined and clinical and were still trying to play rugby in the difficult conditions.
"If we could play like that for the whole 80 minutes we would be some side. Then we got on the wrong end of the referee but it's a precious win as you have to be 10 points better than the opposition to win away from home.
"I couldn't see how Jamie Roberts could be sin-binned but credit to Worcester for sticking at it and to us for closing the game out."
Worcester: Pennell; Heem, Olivier, Mills, Vuna; Heathcote, Arr; Leleimalefaga, Annett, Schonert, O'Callaghan, Barry, Cox, Mama, Dowson (capt).
Replacements: Symons (for Heathcote, 31), Betty (for Mama, 50), Bower (for Leleimalefaga, 65), Sowrey (for Annett, 65), Milasinovich (for Schonert, 65), Sanderson (for O'Callaghan, 65).
Harlequins: Brown; Walker, Lowe, Roberts, Chisholm; N Evans, Care (capt); Marler, Ward, Jones, Horwill, Matthews, Robshaw, Wallace, Easter.
Replacements: Buchanan, O Evans, Sinckler, Merrick, Clifford, Dickson, Botica, Sloan.
Sin-bin: Lowe, Roberts.
For the latest rugby union news follow @bbcrugbyunion on Twitter.