Marcus Watson scored twice and was sin-binned as Wasps ran in five tries to Bath's four to secure a hard-fought 31-26 triumph at The Rec.
In form Wasps, who have now won six straight Premiership matches, came flying out the blocks as winger Watson dotted down from Willie Le Roux's excellent offload.
Dan Robson then went over from close range, before Watson had a second after a slick Wasps move on Friday.
Bath grasped the initiative when Watson saw yellow for deliberate knock on, and the hosts made the most of the extra number as Rhys Priestland and James Wilson touched down to leave them trailing 19-14 at the break.
A topsy-turvy second half saw Juan de Jongh and Gabiriele Lovobalavu dot down for Wasps, only for Paul Grant and Zach Mercer to respond - the latter while Le Roux was in the sin-bin.
But Wasps clung on amid late pressure to move up to second in the table, albeit Saracens can reclaim the spot by beating Worcester, while Bath have now lost three on the spin.