Wasps scored three tries as they claimed their third Premiership victory in six games this season to leave bottom club Bath still winless.
Vaea Fifita crossed before the break to earn a narrow 13-10 half-time lead, Tom de Glanville crossing for Bath.
Veteran Jimmy Gopperth was stretchered off after a high shot from red-carded Mike Williams before tries from Gabriel Oghre and Tom Willis sent Wasps clear.
Bath were down to 13 men when Semesa Rokoduguni got a late consolation try.
But, despite the return of Bath number eight Josh Bayliss for the final four minutes, having been shown a yellow card for a deliberate knock on, the hosts could not get close enough to the Wasps line to claim a losing bonus point.
In a second half of three cards, Wasps were the first to lose a man when Jeff Toomaga-Allen was sent to the sin-bin - but it was just two minutes later when Williams was sent off for his stiff arm challenge on Gopperth. And, after a long delay, Wasps were left waiting anxiously for further reports on a suspected concussion issue.
More to follow.
Bath: De Glanville; Rokoduguni, Clark, Ojomoh, Muir; Bailey, Fox; Boyce, du Toit, Rae, McNally (capt), Williams, de Carpentier, Reid, Bayliss
Replacements: Dunn, Schoeman, Jonker, Richards, Mergian, Green, Cipriani, Joseph.
Sent off: Williams (47).
Sin-bin: Bayliss (66).
Wasps: Watson; Kibirige, Le Bourgeois, Gopperth, Bassett; Umaga, Robson; Hislop, Oghre, Toomaga-Allen, Fifita, Stooke, Shields (capt), Young, T Willis
Replacements: van Vuuren, Nearchou, Millar-Mills, Cardall, Carr, Porter, McHenry, Crossdale.
Sin-bin: Toomaga-Allen (45).
Referee: Ian Tempest (RFU).