Worcester went down to a 21st straight Premiership defeat but came so close to ending a year-long run without a league win against Harlequins at The Stoop.
Quins trailed 13-0 through penalties from Chris Pennell and Ryan Lamb either side of David Lemi's converted try.
Sam Smith's try followed two Ben Botica penalties either side of the break.
Botica's third penalty then gave Quins the lead before Harry Sloan's converted debut try, full-back Pennell's own late converted try narrowing the gap.
Warriors still had six minutes to try and snatch a first win since their last Premiership victory against Wasps, also on St David's Day, 12 months ago.
But, despite another spirited showing, they could not find another way through and were left to rue their wastefulness with the boot.
After Pennell's early penalty, followed by Quins winger Ugo Monye's yellow card, Worcester then wasted their man advantage.
Pennell hit the post with his second penalty attempt. And, when they changed kickers, new stand-off Ryan Lamb, on his Warriors debut, also missed.
Winger Lemi then ran in for his fourth try of the season, Lamb converting from in front of the posts, before Botica finally got misfiring Quins on the scoreboard just before the break.
Botica's second successful penalty was followed by another Lamb miss. And, when Worcester flanker Leonardo Senatore became the second player sin-binned, Quins cashed in.
Worcester's latest signing, Quins winger Smith, who last week agreed a move to Sixways next season, went in at the corner for the home side.
Botica missed the kick, but he then did land a penalty to give Quins the lead for the first time.
England Under-20 centre Sloan marked his Premiership debut with the game's main moment of controversy when he appeared to receive a forward pass to score with 12 minutes to go, Botica converting for a 21-13 lead.
Pennell offered hope when he went under the posts on 64 minutes, converting his own try, but Quins, weakened by so many international calls, saw the game out.
The Warriors did at least pick up a losing bonus point - only their fifth of the season - to move within 11 points of second-bottom Newcastle, who they are due to meet at the end of March.
But they have now lost all six Premiership meetings with Quins since returning to the top flight in 2011.
Harlequins director of rugby Conor O'Shea:
"We knew we would have to fight tooth and nail through this international period. We have inadvertently blooded some outstanding young talent which should stand us in good stead for the future.
"We didn't go berserk at half-time. There was no point because it was so not us in the first half.
"But we got ourselves back in the game and I thought our second-half performance was pretty good, given the circumstances. We could have pulled away but we didn't and were left clinging on for dear life."
Worcester Warriors director of rugby Dean Ryan:
"I'm just really proud of the guys. It's been a pretty raw week for us and it was a tremendous effort to respond the way we did. I was hoping we could get the right response, and we did.
"We're still fighting like mad. We still believe. We now have to go back to Sixways and see what we can do. We've got to get a win and I don't care if it's the ugliest win I've ever seen. We still feel we can get something in the back pocket before we go to the north-east.
"There isn't any lack of work-rate from this group. This club just has to make sure that remains central to everything it does."
Harlequins: Lindsay-Hague; Smith, Sloan, Turner-Hall, Monye; Botica, Dickson; Lambert, Gray, Sinckler, Kennedy, Robson, Guest, Fa'asavalu, Easter (capt).
Replacements: Trayfoot for Guest (56), Ward for Gray (70), Matthews for Robson (71).
Not Used: Marfo, Doran-Jones, Stuart, Grimoldby, Sackey.
Sin Bin: Monye (11).
Worcester: Pennell; Hammond, Grove, Fatiaki, Lemi; Lamb, Arr; Fainga'anuku, Creevy, O'Donnell, Percival, Galarza, Williams, Betty, Thomas (capt).
Replacements: Murray for O'Donnell (41), Shervington for Creevy (49), Andrew for Fainga'anuku (63). Taulava for Galarza (69), Warwick for Lamb (69), Senatore for Betty (53), Stelling for Senatore (71), Hodgson for Lemi (71).
Sin Bin: Senatore (54).
Referee: Wayne Barnes (RFU).