Warriors snatched a dramatic victory in the 99th minute of an epic contest when Duncan Weir added a nerveless conversion to Bryce Heem’s second try of the match.
Warriors had laid siege to the visitors’ line for 19 minutes of added time but claims for a penalty try had been ignored by referee Ian Tempest.
But Bath’s ill discipline proved costly as they had hooker Ross Batty sent off for a high tackle after 64 minutes and they had three players yellow carded – including two replacement props – in a chaotic finale.
Bath ended the match with only 11 men on the pitch and Warriors exploited their numerical advantage by attacking from the final scrum and sending Heem over on the overlap.
Heem was unable to touch down under the posts but Weir held is nerve to clinch an important win that appeared unlikely when they trailed by 16 points at half-time.
But Warriors turned in a vastly improved display in the second half, starved Bath of possession and capitalised from their own pressure.
In some ways the first half was a replay of Warriors’ previous home match against Northampton as penalties conceded in the first quarter allowed the visitors to build a lead with Freddie Burns slotting three easy penalties.
Chris Pennell was off target with a long range penalty in the 26th minute but Warriors pulled back three points two minutes later when Duncan Weir found the target with a well struck effort.
But Bath stole a lineout in Warriors territory and launched a sweeping attack which appeared to have put full-back James Wilson over in the corner.
Referee Ian Tempest consulted Television Match Official Stuart Terheege who ruled that Wilson had not grounded the ball over the line.
It was a let-off for Warriors but only a brief one. Bath attacked from the resulting five metre scrum and number eight Zach Mercer went over for the try which Burns improved.
Burns kicked his fourth penalty just before the break when Warriors were caught offside in defence and Warriors were unable to turn late first half pressure into points when they attacked from a scrum but lost the ball in contact.
But Warriors were a transformed side in the second half. Weir added three points with a penalty early in the second period before Heem gave a hint of what was to come when he swept over midway through the half.
Weir put Warriors in contention for at least a losing bonus point when he slotted a penalty 13 minutes from the end of normal time.
But there proved to be plenty more playing time to come which gave Warriors’ pack the chance to put Bath under pressure in one of the longest final minutes in Premiership history and to snatch the win with Heem’s late, late try and Weir’s conversion.
Warriors | 15 Chris Pennell, 14 Bryce Heem, 13 Francois Venter, 12 Ben Te’o, 11 Perry Humphreys (Mills 64), 10 Duncan Weir, 9 Francois Hougaard (Arr 57), 1 Callum Black (Waller 54_, 2 Jack Singleton, 3 Nick Schonert (G Milasinovich 41), 4 Anton Bresler (Phillips 60), 5 Michael Fatialofa (Barry 73), 6 Ted Hill (Mama 54), 7 Sam Lewis, 8 GJ van Velze (C).
Replacements | 16 Joe Taufete’s, 17 Ethan Waller, 18 Gareth Milasinovich, 19 Pierce Phillips, 20 Darren Barry, 21 Marco Mama, 22 Jonny Arr, 23 Ryan Mills.
9m | Burns pen 0-3
17m | Burns pen 0-6
20m | Burns pen 0-9
28m | Weir pen 3-9
34m | Mercer try 3-14
35m | Burns con 3-16
38m | Burns pen 3-19
48m | Weir pen 6-19
59m | Heem try 11-19
67m | Weir pen 14-19
80m | Heem try 19-19
80m | Weir con 21-19