The Exiles moved up to seventh in the table after a narrow 22-19 win at Twickenham Stoop.
For Quins, this was a missed opportunity to make up ground on leaders Leicester as they fell to a third defeat of the campaign, despite young winger Oscar Beard scoring his first two senior tries.
London Irish claimed the game’s first points through a simple penalty by Paddy Jackson after five minutes, as Quins failed to roll away at a ruck.
A couple of forward passes prevented the hosts from hitting back quickly, while a move involving Andre Esterhuizen and Danny Care, following Tommy Allan’s chip ahead, broke down on the left.
But Harlequins did have their first try in the 23rd minute when Care’s hopeful kick towards the left-hand corner was not dealt with by Tom Parton and Beard pounced on the loose ball to score.
Allan added the conversion from out wide, but the Exiles hit back just before the half-hour mark when Argentina hooker Agustin Creevy grounded the ball off the back of a driving maul, following a succession of penalties.
Jackson’s conversion put the visitors 10-7 in front but it only took another seven minutes for the lead to change hands again.
It came from a delightful move as well, as Care sent Jack Walker through a gap down the middle and the hooker produced a lovely off-load to put Luke Northmore in the clear to score under the posts.
That put Harlequins 14-10 ahead at half-time and it took a superb tackle by Jackson to prevent Tyrone Green from going through and extending that lead eight minutes after the break.
His intervention allowed the Exiles to then go ahead again, following a dangerous break by Parton, as Curtis Rona found former Australia lock Rob Simmons in space to go over down the right.
Jackson missing the conversion meant just one point separated the teams, but Irish went more than a converted try clear when replacement scrum-half White darted his way over just short of the hour mark.
Quins missed a great chance to quickly pull a try back when Jack Kenningham knocked on close to the line after Beard had done brilliantly to gain ground on the left.
Beard did have his second with 13 minutes left when he went in at the corner after Care and Tom Lawday combined to find him in space, but Quins could not snatch a late winner this time as Irish doggedly held on.
Additional reporting from PA