Some clinical finishing and excellent controlled percentages rugby won it for the West country team.
Wasps had the best possible start when Ayoola Erinle charged down an attempted clearance by Thinus Delport, and Stuart Abbott pounced to mark his comeback with a try. Edd Thrower added the conversion.
But Tommy Hayes reduced the deficit with a neatly-taken penalty, and then from a useful driving maul, Dale Rasmussen peeled off for the home team's opening score.
Giscard Pieters extended the advantage with a superb try after 26 minutes, and then from a forced turnover, Tim Collier charged through to the line.
Hayes converted all three tries to send the Warriors into the break with an amazing 24-10 advantage.
Warren Gatland, who had rested a number of star players despite already missing several to international duty, rang the changes at the break, including the entrance of Lawrence Dallaglio to the fray.
But Worcester just settled and refused to lie down, and within four minutes of the restart had extended their lead with another Hayes penalty.
Erinle burst through on 50 minutes for a try which Thrower converted, and both players repeated their respective feats with a quater of an hour remaining, to set up a grand finale.
But Worcester clung on to the now-slender three-point lead and saw out the remaining minutes for a famous win.
For Worcester:Tries: Rasmussen, Pieters, Collier. Cons: Hayes 3. Pens: Hayes 2.
For Wasps:Tries: Abbott, Erinle 2. Cons: Thrower 3. Pen: Thrower.