Gloucester clinched a 29-23 victory in dramatic fashion with a penalty try after Errie Claassens was sent off for a deliberate trip.
With 20 seconds remaining, Jonny May burst away on the left flank and reached the visitors' 22 before attempting to step inside full-back Errie Claasens, who felled the flying wing with a trip.
On the advice of the TMO Claasens was sent off and Gloucester awarded a penalty try, converted by Rob Cook, which broke Worcester hearts as they seemed set for a shock win which would have allayed their relegation fears.
Gloucester recalled centre Henry Trinder and prop Dan Murphy to the starting line-up with Mike Tindall being a very late withdrawal to be replaced by Tim Molenaar.
Worcester made four changes following last week's defeat by Northampton with wing Josh Drauniniu dropping to the bench. Chris Pennell replaced Drauniniu and there were also recalls for No 8 Blair Cowan, centre Josh Matavesi, and prop Matt Mullan.
Worcester had the first chance for points but Andy Goode's long-range penalty attempt rebounded back off the crossbar. Cook had a similar opportunity but he made no mistake to give the hosts a seventh minute lead.
Moments later, Cook was again on target with another penalty before the increasingly dominant Gloucester almost scored the opening try. A clever chip ahead from Trinder saw May just fail to win the touchdown as the ball ran into the in-goal area.
A Goode penalty put the Warriors on the scoreboard to make it 6-3 to Gloucester at the end of the first quarter before Cook had a chance to restore the six point lead but he badly mishit his penalty attempt.
Gloucester continued to control both possession and territory but with the award of frequent penalties, they could not take advantage as play was constantly disrupted.
Eventually the patience of referee, David Rose, was exhausted and he sent Worcester flanker, Sam Betty, to the bin for a dangerous challenge on Charlie Sharples.
With three minutes to go before half-time, amazingly Worcester took the lead with a splendid solo effort from Matavesi, who skipped past attempted tackles from Trinder and Darren Dawidiuk to run 22 metres for the try which Goode converted.
Stung by the reverse, Gloucester's reply was immediate, producing a counter-attack from inside their own 22 which ended with May sending Trinder in for the try which Cook converted to give the home side a 13-10 interval lead.
Betty returned from the bin but within seconds of the restart, Worcester infringed, with Mullan not releasing allowing Cook to kick his third penalty.
More ill-discipline from the Warriors, this time a late tackle from Jonny Arr on Ryan Mills, resulted in Mills stepping up to kick a penalty to put Gloucester further ahead.
Goode kicked his second for Worcester as the visitors continued to battle hard to frustrate Gloucester. Surprisingly Goode elected not to kick another penalty in favour of a speculative cross-field kick and the chance to further reduce the arrears was lost.
Goode fired wide with another penalty but Warriors regained the lead when he converted a try from Alex Grove, who had raced 20 metres after intercepting a lazy pass from Molenaar.
With 10 minutes remaining, Cook put Gloucester back in front with a simple penalty but home prop, Rupert Harden, was penalised for not rolling away for a Gray penalty before the dramatic finish ruined Worcester's hopes.
Tries: Trinder, Penalty
Cons: Cook 2
Pens: Cook 4, Mills
Tries: Matavesi, Grove
Cons: Goode 2
Pens: Goode 2, Gray
Yellow Card: Betty
Red Card: Claassens
Gloucester: 15 Rob Cook, 14 Charlie Sharples, 13 Henry Trinder, 12 Mike Tindall (c), 11 Jonny May, 10 Ryan Mills, 9 Dan Robson, 8 Sione Kalamafoni, 7 Akapusi Qera, 6 Tom Savage, 5 Will James, 4 Lua Lokotui, 3 Rupert Harden, 2 Darren Dawidiuk, 1 Dan Murphy.
Replacements: 16 Huia Edmonds, 17 Nick Wood, 18 Dario Chistolini, 19Peter Buxton, 20 Andy Hazell, 21 Dave Lewis, 22 Shane Monahan, 22 Tim Molenaar, 23 Martyn Thomas.
Worcester Warriors: 15 Errie Claassens, 14 Chris Pennell, 13 Alex Grove, 12 Josh Matavesi, 11 David Lemi, 10 Andy Goode, 9 Jonny Arr, 8 Blair Cowan, 7 Matt Kvesic, 6 Sam Betty, 5 Dean Schofield, 4 James Percival (c), 3 Euan Murray, 2 Ed Shervington, 1 Matt Mullan.
Replacements: 16 Aleki Lutui, 17 Ceri Jones, 18 John Andress, 19 Craig Gillies, 20 Jake Abbott, 21 Paul Hodgson, 22 Danny Gray, 23 Josh Drauniniu.
Referee: David Rose