Tries from wings Christian Wade and Tom Varndell and 17 points from the boot of Nick Robinson steered Wasps to a 27-24 win over Bath.
The win ends a three-game losing streak for Dai Young's side and pulls them level on points with Bath in the Premiership table.
Bath were first on the scoreboard when Wasps gifted Tom Heathcote a simple penalty opportunity and the youngster bisected the posts with his first attempt at goal.
Two Robinson penalties then edged Wasps in front, but it took a brilliant cover tackle from the home side's outstanding hooker Rob Webber to keep Bath at bay, Nick Abendanon losing control of the ball from the power of the collision.
Wasps got the first score of the game when Christian Wade grabbed his sixth try of the season in as many games; however Bath prop Kane Palma-Newport pulled the visitors back into the contest shorty after when he burrowed over from close range.
Heathcote converted. Bath crossed Wasps' line on two more occasions in the first half, but Heathcote was held up following a good break from Tom Biggs and Ben Williams was adjudged to have knocked on by referee Andrew Small while in the act of scoring.
A second penalty from Heathcote drew Bath level, but Wasps went into the break with their noses in front after Varndell finished off a good move involving Wade, Joe Launchbury and Robinson.
Both sides continued their attack-minded approach in the second half although neither side were able to cross the whitewash in the third quarter, Robinson and Heathcote adding two penalties apiece.
Another three-pointer from Robinson nudged Wasps further ahead at 27-19 only for Guy Mercer to keep Bath in the hunt with his side's second try.
Bath could not make late pressure tell, though, and Ian McGeechan's men had to settle for a losing bonus point from a hugely entertaining affair.
London Wasps: 15 Hugo Southwell, 14 Tom Varndell, 13 Chris Mayor, 12 Chris Bell, 11 Christian Wade, 10 Nick Robinson 9 Nic Berry, 8 John Hart (c), 7 Jonathan Poff 6 Joe Launchbury, 5 Richard Birkett, 4 Marco Wentzel, 3 Ben Broster, 2 Rob Webber, 1 Tim Payne.
Replacements: 16 Jeremy Castex, 17 Tom Lindsay, 18 Simon McIntyre, 19 Ross Filipo, 20 Matt Everard, 21 Jonah Holmes, 22 Ryan Davis, 23 Jack Wallace.
Bath: 15 Nick Abendanon, 14 Matt Carraro, 13 Dan Hipkiss, 12 Ben Williams, 11 Tom Biggs, 10 Tom Heathcote, 9 Michael Claassens, 8 Simon Taylor, 7 Guy Mercer, 6 Ben Skirving, 5 Ryan Caldwell, 4 Dave Attwood, 3 Kane Palma-Newport, 2 Pieter Dixon, 1 David Flatman (c).
Replacements: 16 Ross Batty, 17 Charlie Beech, 18 Mark Lilley, 19 Will Spencer, 20 Andy Beattie, 21 Mark McMillan, 22 Paul Roberts, 23 Jack Cuthbert.
Referee: Andrew Small