Gloucester held a 10-3 half-time lead thanks to a try from hard-working flanker Jake Boer in the 15th minute, which was converted by flyhalf Ludovic Mercier.
Irish flyhalf Barry Everitt opened his team's account shortly after Mercier's conversion, but the Gloucester kicking ace cancelled the three-pointer minutes later with his first penalty goal of the day.
A second-half try from veteran loose forward Junior Paramore and a penalty from Mercier stretched the home team's lead to 18-6 before the visitors staged a magnificent fightback in the final quarter.
Wing Paul Sackey scored a brace of tries, both of which were converted by Everitt, but Gloucester were awarded a penalty try, which Mercier converted, to give them the win in the end.
For Gloucester:Tries: Boer, Paramore, penalty tryCons: Mercier 2Pens: Mercier 2
For London Irish:Tries: Sackey 2Cons: Everitt 2Pens: Everitt 2