It was three tries apiece in the first half, Wade scoring either side of Will Rowlands' try, with Josh Adams going over twice after Bryce Heem's score.
After Heem saw red for a tackle on Willie le Roux, Wasps' Alapati Leiua, Josh Bassett and Brendan Macken scored.
However, Biyi Alo and Jackson Willison crossed as Warriors gained two points.
The hosts also finished the match with 14 men, as ex-Warriors man Matt Mullan was sent to the sin-bin.
Second-bottom Worcester led on two occasions in the first half and were good value for their two bonus points.
New Zealander Heem was dismissed on 45 minutes for a mistimed challenge on airborne Wasps full-back Le Roux, who was replaced by Bassett after receiving treatment on the pitch.
Dai Young's side are now guaranteed a place in the end-of-season play-offs, while Warriors are nine points clear of Bristol and only four adrift of 10th-placed Sale.
Wasps director of rugby Dai Young:
"It's a win and five points but there were very few areas of our game that pleased me.
"Worcester won nearly all the 50-50s and were first to react in terms of mind and our performance didn't match the five points.
"Christian was probably the difference, but I always thought that we could respond if we needed to as we probably had that extra bit of quality.
"It was a big message to us as we will have to be better against Leinster next week as they will match us for quality so we'll have to prove that we've got the belly for the fight."
Worcester director of rugby Gary Gold:
"We knew we had to put in an incredibly strong performance and we showed huge character in an absolutely outstanding effort.
"We are a good team and improving but we want to keep our feet on the ground, although I believe we've turned the corner.
"We defended very well but we conceded two tries to Wade, who is a world class finisher. If you don't get him first time, you end up chasing shadows."
"Bryce was unfortunate but the referee had no choice. Luke is a good ref, he let the game flow and it was fun to watch."
Wasps: Beale; Wade, Leiua, Gopperth, Le Roux; Cipriani, Robson; McIntyre, Johnson (capt), Moore, Rowlands, Myall, Haskell, Young, Rieder.
Replacements: Cruse, Mullan, Cooper-Woolley, Symons, Thompson, Simpson, Macken, Bassett.
Worcester: Pennell; Heem, Olivier, Willison, Adams; Mills, Hougaard; Rapava Ruskin, Taufete'e, Schonert, O'Callaghan (capt), Spencer, Vui, Lewis, Mama.
Replacements: Bregvadze, Bower, Alo, Dowson, Potgieter, Baldwin, Humphreys, Hammond.
For the latest rugby union news follow @bbcrugbyunion on Twitter.
The Premiership's top try scorer Christian Wade scored two tries as leaders Wasps moved five points clear with a bonus-point win over Worcester.