Fly-half Freddie Burns kicked 25 points to help Gloucester to their first win of the season against London Irish.
Topsy Ojo's try and three penalties from Steve Shingler were undone by Ben Morgan's first Gloucester try shortly before half time.
Halani Aulika put Irish back in front soon after the break but Burns's boot kept Gloucester in touch following Tomas O'Leary's score.
Tries from James Simpson-Daniel and Akapusi Quera gave Gloucester victory.
The Cherry and Whites came from behind three times to leave the London Irish coaches still looking for their first win after last weekend mauling by Saracens.
Shingler was handed the Exiles kicking duties ahead of last season's top points scorer Tom Homer - who played with a bandaged knee and he and Burns exchanged three-pointers early on.
The Welshman was twice involved in the build up to Ojo's try - Exiles' first of the season - before he released Homer who put a grubber through for Ojo to score.
Burns pulled six points back but Shingler was on song once more before Morgan exploited some lacklustre defending from the base of the scum when he burst between Scott Lawson and O'Leary.
Irish's scrum - which looked suspect all afternoon - conceded another penalty after the break which Burns converted.
Exiles number eight John Fisher broke through Gloucester's defence to provide Aulika with his debut Irish try following his summer move from Leeds.
Burns gave Gloucester a one-point lead from inside his own half as the hosts scrum collapsed but when Irish got their drive right and O'Leary scooted over for their second try.
Shingler again converted, Burns added a fifth penalty and Shingler booted Irish back in front.
Burns turned creator as he darted down the left touchline before turning the ball inside to Simpson-Daniel.
The fly-half converted what proved to be the crucial score and two minutes later when Qera went over from close in.
VIEW FROM THE DRESSING ROOM
London Irish director of rugby Brian Smith:
"It's disappointing but the big positive is that it was a much improved performance from last week.
"From an attack point of view we were a lot better today. We gave ourselves a chance to win the game - last week we weren't in the game.
"From a defence point of view we just need to close things out a bit better.
"To concede two late tries is disappointing but there's things to work on. We need to tidy up things up front and sort out the infringements."
Gloucester director of rugby Nigel Davies:
"Our commitment and resilience is 100% - our performance level is about 60. We can still get a lot better.
"One of the strengths we have in the squad is that we can put out a very competitive 23-man squad who can all make a big contribution.
"Freddie [Burns] was fantastic today. He's still young although he appears to have been around for a long time. He's really enthusiastic and it's great to work with somebody like that."
London Irish: Homer; Ojo, Joseph, Tagicakibau, Yarde; Shingler, O'Leary; Lahiff, Lawson, Halavatau, Skivington, Evans, Danaher, Treviranus, Fisher.
Replacements: Watson for Homer (33), Aulika for Lahiff (40), Blaney for Lawson (61), Ryan for Halavatau (58), Gray for Danaher (69), Low for Treviranus (61).
Gloucester: May; Sharples, Trinder, Twelvetrees, Simpson-Daniel; Burns, Robson, Wood, Dawidiuk, Knight, James, Hamilton, Savage, Hazell, Morgan.
Replacements: M. Thomas for Sharples (59), Tindall for Trinder (58), Lewis for Robson (61), Edmonds for Dawidiuk (50), Harden for Knight (48), Kalamafoni for James (50), Qera for Hazell (48).
Ref: Greg Garner (RFU).