Replacement Freddie Burns kicked a late penalty as Gloucester squeezed home 22-19 past London Irish at the Madejski Stadium.
Fergus Mulchrone's try gave Irish an early 7-0 lead before the Cherry and Whites responded with 19 unanswered points through Jonny May's converted touchdown and four Billy Twelvetrees penalties.
Although the hosts came back through two Eamonn Sheridan scores, Burns' three-pointer was enough to secure victory for the visitors.
Despite this encounter being between two of this season's Premiership strugglers, both teams are renowned for their exciting backlines.
And it took just 63 seconds for the Exiles to score the first try when Humphreys sent Mulchrone through a gaping hole.
Gloucester were considered as play-off contenders at the start of the campaign but they have endured a torrid year so far.
To their credit, they responded well to that early score and successive Twelvetrees penalties reduced the arrears to one point. Irish continued to play their wide game but it proved costly when James O'Connor was isolated and the visitors' fly-half picked up the loose ball.
Twelvetrees then off-loaded to May who had a free run to the line. The stand-off converted and added his third penalty to extend the advantage to 16-7 at the break.
The Cherry and Whites continued to control proceedings in the second period. Elliott Stooke went close to scoring their second try before Twelvetrees kicked another three-pointer.
Brian Smith's men replied and finally got themselves on the board with their first points since the opening minute when Sheridan crossed the whitewash.
Although Burns came on to add a penalty to give Gloucester a 22-12 lead, the Exiles' inside centre touched down for his second try of the afternoon, but they couldn't find the winning score.
Tries: Mulchrone, Sheridan 2
Cons: Humphreys, Geraghty
Pens: Twelvetrees 4, Burns
London Irish: 15 James O'Connor, 14 Topsy Ojo, 13 Fergus Mulchrone, 12 Eamonn Sheridan, 11 Alex Lewington, 10 Ian Humphreys, 9 Tomás O'Leary, 8 Blair Cowan, 7 Ofisa Treviranus, 6 Kieran Low, 5 Ian Gough, 4 George Skivington (c), 3 CJ Van Der Linde, 2 Jimmy Stevens, 1 Matt Parr.
Replacements: 16 Mike Mayhew; 17 John Yapp, 18 Leo Halavatau, 19 Nic Rouse, 20 Jebb Sinclair, 21 Andrew Fenby, 22 Shane Geraghty, 23 Ed Hoadley
Gloucester: 15 Rob Cook, 14 Charlie Sharples, 13 Henry Trinder, 12 Mike Tindall, 11 Jonny May, 10 Billy Twelvetrees (c), 9 Jimmy Cowan, 8 Ben Morgan, 7 Matt Kvesic, 6 Matt Cox, 5 James Hudson, 4 Elliott Stooke, 3 Sila Puafisi, 2 Darren Dawidiuk, 1 Nick Wood.
Replacements: 16 Huia Edmonds, 17 Yann Thomas, 18 Shaun Knight, 19 Will James, 20 Gareth Evans, 21 Dan Robson, 22 Freddie Burns, 23 Martyn Thomas
Referee: Andrew Small
Assistant referees: Nigel Carrick, Paul Burton
Timekeeper: John Burtenshaw
Television match official: Graham Hughes
Assessor: Chris White, Clive Leeke