Gloucester denied London Welsh a third back-to-back victory with a 35-21 win at the Kassam Stadium.
The Cherry and Whites took an early 6-3 lead through the boot of in-form Freddie Burns, while veteran Gordon Ross put the Exiles' first points on the board.
A quick-tap penalty from Burns put Shane Monahan through on the 14th minute to extend the Gloucester lead. Savage crashed over shortly after for a second Gloucester try, setting up a considerable 18-6 advantage.
Gordon Ross managed to reduce the deficit, slotting his third penalty to leave the half-time score at 18-9.
Freddie Burns was shown a yellow card for knocking down a pass early in the second half, and Welsh used the man advantage to chip away at the Gloucester lead.
A try from front row forward Frank Montanella gave Welsh a 60th-minute lead, before Ross and Burns once again exchanged kicks to put the scores at 24-21.
A turnover in midfield set up an opportunity for Shaun Knight, who touched down to snatch back the lead for Gloucester.
Gloucester pushed hard in the closing stages for a bonus point, but the scores remained at 31-25 as they earned a hard-fought win.