London Irish secured just their second Premiership win of the season as they held off champions Harlequins.
Tries from Agustin Creevy, Rob Simmons and Ben White saw the Exiles turn around a 14-10 deficit at half-time.
Their margin of victory could have been even more impressive had they not spurned more chances in attack.
Quins fell to their third defeat of the season despite two tries from winger Oscar Beard and Luke Northmore going under the posts in the first half.
It was Irish's first success over their neighbours in four Premiership meetings as they carried on their momentum from back-to-back victories in the Premiership Rugby Cup.
Quins were without England internationals Marcus Smith and Alex Dombrandt who were rested after the autumn internationals while Joe Marchant was left out as a precaution with a hamstring injury.
There would also have been concern for fly-half Tommy Allan, who was taken off before half-time with a painful-looking shoulder injury.
The champions led after the first quarter when Beard scored his first Premiership try, capitalising on an error from Kyle Rowe who failed to catch a bouncing ball from Danny Care's dinked kick over the top to the five-metre line.
Irish hooker Creevy helped them rally with his sixth score of the season underneath a rolling maul, but Quins regained the lead when Northmore was set free to cross under the posts from a Jack Walker offload out the back of the hand for their 125th try of the calendar year.
However, the lead would change hands again 12 minutes into the second half when Irish withstood a wave of Quins attacks before countering initially through Tom Parton's break before lock Simmons scored his first try for the club in the right corner.
The visitors extended that lead on the hour when replacement scrum-half White barged his way through after choosing to pick-and-go on his own.
But Quins narrowed the deficit to three points when Beard went over for his second try from Tom Lawday as space opened up for the winger. Will Edwards could not add the conversion.
Irish made the closing stages more nervy than perhaps they should have been when Ollie Hassell-Collins failed to spot two overlaps when attacking in Quins' 22, but the hosts were unable to capitalise and snatch the win on a frustrating afternoon.
Harlequins senior coach Tabai Matson told BBC Radio London:
"It's never one thing, but we'll have a really good look at our kick-offs when we score points as in the first half, we exited really poorly and let them score and get back into the game.
"We just didn't get the rhythm today that we normally do which was really disappointing.
"A lot of it was just the guys not having played together for a couple of weeks or even longer and at this level of the competition, you only have to be down a couple of percent and you get beat.
"There's a long uninterrupted stretch now of games so hopefully we can start to build that momentum again."
London Irish head coach Les Kiss told BBC Radio London:
"It's a good win, we knew it would come down to our defence and I think what we showed was our connected passion and emotion.
"We're trying to make our desire to attack part of our DNA, we don't want to shy away, but we knew we had to keep playing our game and make them come to us.
"It's a pretty crucial game for us in terms of where we are, but I thought it was a great derby where both teams really put their effort in.
"We're finding out more about each other as a squad with every game, it's grown week-by-week and step by step we're trying to find out who we are. Hopefully we can take another step next week."
Harlequins: Green; Beard, Northmore, Esterhuizen, Murley; Allan, Care; Marler, Walker, Collier, Lamb, Lewies (capt), J Chisholm, Kenningham, Lawday.
Replacements: Musk, Garcia Botta, Kerrod, Tizard, Taulani, Gjaltema, Edwards, Jones.
London Irish: Parton; Rowe, Rona, Van Rensburg, Hassell-Collins; Jackson, Phipps; Goodrick-Clarke, Creevy, Hoskins, Coleman, Simmons, Rogerson (capt), Pearson, Cracknell.
Replacements: Willemse, Dell, Parker, Mafi, Tuisue, White, Jennings, Williams.
Referee: Christophe Ridley (RFU).