Dewsbury were twice reduced to 11 men as they had a total of four players sin-binned. Featherstone also ended with 11 players as they had Richard Moore and Luke Briscoe sent off, while there were a total of 26 penalties awarded in the match.
Teanby’s fierce drive saw the Dewsbury prop force his way over for the opening try, which Paul Sykes converted.
Featherstone had failed to trouble Dewsbury in the opening 15 minutes but they hit back with a fortuitous try.
Former Rams half-back Anthony Thackeray chipped forward and the ball rebounded off the crossbar before Rovers moved play quickly right for Briscoe to score and Cory Aston levelled with the first of his nine goals for the visitors.
A fracas saw Danny Igbinedion and Jason Crookes sin-binned, while Featherstone’s Moore was shown a straight red card.
While Dewsbury were down to 11 men, Rovers took control as they scored two converted tries – from Ian Hardman and Briscoe – and a penalty to lead 20-6.
Aston was again on target with a penalty just before half-time and Featherstone held a 16-point lead at the break.
Rovers extended their lead when Handley broke through and sent Matty Wildie through before Sykes and Gareth Potts were sin-binned.
Briscoe saw red following a spear tackle but with only eight minutes remaining, it left the Rams little chance to get back into the game.
Rovers completed their win a minute from full-time when Aston gathered an offload on the try line to score.
Dewsbury Rams: Guzdek; Potts, Sykes, Crookes, Morton; Aaron Brown, Kain; Douglas, Ward, Teanby, Ollett, Walshaw, Annakin. Substitutes: Sio, Igbinedion, Stringer, Barnes.
Featherstone Rovers: Hardman; Briscoe, Walton, Ulugia, Handley; Thackeray, Aston; Bostock, Carlile, Baldwinson, Lockwood, Davies, Walters. Substitutes: Moore, Wildie, Griffin, Cooper.
Referee: B Robinson (RFL).