Freddie Burns ran up a 24-point haul as Gloucester won at the Madejski Stadium to leapfrog London Irish at the top of the Amlin Challenge Cup Pool One table.
After Sailosi Tagicakibau's early try, the Exiles led 10-6 at the break.
Halani Aulika and Anthony Watson then both ran in tries early in the second half to extend the Irish lead to 22-9.
But two tries in six minutes from Dan Murphy and Burns, both of which he converted, before the latter two of his five penalties, saw Gloucester home.
After having lock forward Bryn Evans sinbinned on 59 minutes, Irish then conceded 10 points, through Burns' converted try and his fourth penalty.
Burns' final penalty on 73 minutes then helped to secure Gloucester's second win at the Madeski this season.
It followed their 40-31 Premiership victory in September when Burns kicked seven penalties and two conversions for a 25-point haul.
London Irish: Homer; Ojo, Joseph, Tagicakibau, Watson; Humphreys, Allinson; Lahiff, Paice, Aulika, Evans, Garvey, Danaher, Gibson, Treviranus.
Replacements: Hala'ufia for Treviranus (53), Yanuyanutawa for Lahiff (56), Lawson for Paice (56), Armitage for Tagicakibau (57), Halavatau for Aulika (57), Low for Garvey (61), Moates for Allinson (64), Geraghty for Humphreys (72).
Sin Bin: Evans (59).
Gloucester: M Thomas; Sharples, Molenaar, Burns, Monahan; Taylor, Robson; Wood, Dawidiuk, Knight, Savage, Hamilton, Kalamafoni, Cox, Evans.
Replacements: Cook for Thomas (40), Murphy for Wood (49), Harden for Knight (49), Morgan for Evans (49), Tindall for Taylor (52), Lewis for Robson (63).
Not Used: Y Thomas, James.
Referee: Dudley Phillips (RFU).