Worcester Warriors ended their eight-match losing run as they finally earned their first Premiership win of 2020.
Three pushover tries from Cornell Du Preez, Ollie Lawrence and Niall Annett in half an hour put Warriors on top.
Scrum-half Francois Hougaard then broke to score his first try of the season to earn a bonus point before the break.
Quins rallied from their 26-0 half-time deficit with tries from England winger Chris Ashton and replacement Elia Elia, but it was not quite enough.
Fit-again England scrum-half Danny Care's return off the bench for his first appearance since the restart helped give Quins their second-half impetus.
But, even though Warriors finished with 14 men after a late yellow card for prop Callum Black, the visitors could not score again,
And stand-off Duncan Weir's penalty, to add to his three first-half conversions, had already given the hosts that extra cushion.
Warriors made 10 changes for the game, which came just five days after Friday's 32-17 loss at Wasps, while Quins made eight changes after Saturday's 38-24 defeat at Saracens.
Worcester Warriors: Pennell; Howe, Lawrence, Venter, Heward; Weir, Hougaard; Waller, Annett, Schonert, Bresler, G Kitchener, Hill, Kvesic, Du Preez.
Replacements: Cutting, Black, Palframan, A Kitchener, Lewis, Simpson, Searle, Beck.
Sin bin: Black (77).
Harlequins: Morris; Ashton, Northmore, Tapuai, Murley; Herron, Steele; Botta, Gray, Collier, Young, Cavubati, Lamb, Evans, Lawday (capt).
Replacements: Elia, Thomas, Van Dyk, White, Chisholm, Care, Lasike, Lang.
Referee: Jack Makepeace.