A late try by Steve Varney allowed Gloucester to see off London Irish in a tightly-fought contest at Kingsholm.
Louis Rees-Zammit and Jack Stanley also scored second-half tries for the Cherry and Whites after the visitors had taken the lead just after the interval.
Agustin Creevy's try had put Irish 20-17 ahead after 52 minutes but Gloucester hit back strongly.
The Premiership's top try scorer Ollie Thorley crossed for his 11th of the season in the opening period.
Paddy Jackson's early penalty put Irish ahead before the hosts scored the opening try when Jake Polledri intercepted a pass and offloaded to Lloyd Evans to go under the posts.
Jackson and Evans then exchanged penalties before Thorley followed-up his four tries against Leicester last week with another score.
He finished off an expansive move which started at a line-out just inside the Irish 22 and swept across the pitch to the opposite corner.
But the visitors hit back two minutes before half-time when Thorley was handed-off by his opposite number Ollie Hassell-Collins, who crossed the whitewash to cut the half-time lead to just four points.
It got better for Irish after the break when Argentine hooker Creevy dotted the ball down to put them into the lead.
But the hosts responded well and Welsh winger Rees-Zammit showed electric pace to dart between Hassell-Collins and Tom Homer and regain the lead.
Stanley added the bonus point try after 64 minutes before Jackson's penalty made it 29-23 with 13 minutes remaining, but Varney's score settled matters.
The defeat is London Irish's fifth in as many games since the restart, while Gloucester move up to seventh, level on points with Northampton Saints.
Gloucester head coach George Skivington told BBC Radio Gloucestershire:
"They came with a lot of heat, tried to mess all our breakdowns up and rattle our cage and we took a bit of time to adapt to that, a little bit longer than I would have liked, but eventually we showed really great character.
"We can't fault the hard work that the boys are doing and their skill sets are good when it comes off, but there's obviously areas we'd like to sharpen up.
"Games do ebb and flow, we could take control of it a little bit more but that's all learning for us as a team and an understanding of how we want to play, but there's some real positives today."
London Irish director of rugby Declan Kidney:
"I wouldn't say it was our best performance since the restart as we always want to win and I was frustrated by our inability to finish off a number of chances.
"I know we can be a lot better and will be so in the future but there were positives from us as we still fronted up in the set piece and in other areas against a strong side.
"There's definite improvement and we are going in the right direction but I'm disappointed that we conceded two tries from two set-pieces as we shouldn't be doing that."
Gloucester: Woodward; Thorley, Harris, Atkinson, May; Evans, Varney; Rapava-Ruskin, Marais, Balmain, Slater, Garvey, Clement, Ludlow, Polledri.
Replacements: Singleton, Fourie, Stanley, Ackermann, Reid, Simpson, Twelvetrees, Rees-Zammit.
London Irish: Homer; Loader, Williams, Hepetema, Hassell-Collins; Jackson, Phipps; Elrington, Creevy, Kepu, Nott, de Chaves, Rogerson, Cowan, Tuisue.
Replacements: Cornish, Goodrick-Clarke, Hoskins, Cooke, Donnell, Meehan, Neal, Stokes.
Referee: Hamish Smales