London Irish were reduced to 13 players as their hopes of qualification for the Heineken Champions Cup last 16 were ended after a defeat by Stormers.
Stormers took the lead with a penalty try before Ben Loader was sent off for a high tackle on Manie Libbok.
Ruhan Nel and Suleiman Hartzenberg scored before the break, and Irish were down to 13 after the interval as Ciaran Parker was shown a red card.
Angelo Davids secured the bonus point but Danilo Fischetti added a late try.
Irish knew they had to win against their South African visitors to stand a chance of reaching the last 16 after two defeats in their opening Pool B games, but it did not start to plan at GTech Community Stadium.
Stormers, who beat Irish 34-14 in Cape Town in their last outing, started brightly and should have taken the lead when Davids had the try line at his mercy but could not grasp the ball and spilled it forward.
The lead was taken shortly after when Irish were penalised for collapsing a powerful Stormers maul, and then the hosts were down to 14 when Loader made direct contact with Libbock's head as he attempted to tackle the visiting fly-half.
Irish remained resilient but Nel latched onto a loose pass for an interception try and Hartzenberg clutched onto a neat Sacha Mngomezulu grubber kick for a third score before half-time.
It went from bad to worse for the hosts two minutes after the break as Parker saw red for trying to clear out the ruck with his shoulder before Davids wrapped up the bonus point after a favourable bounce from Dan du Plessis' kick-through.
Fischetti came off the bench to power over for an Irish consolation but the Premiership side are now out of the competition after three defeats, while the Stormers need one point from their final Pool B game against Clermont Auvergne to secure their progress.
Line-ups
London Irish: Loader; Cinti, Morisi, Van Rensburg, Hassell-Collins; Jennings, White; Goodrick-Clarke, Willemse, Chawatama, Ratuniyarawa, Simmons, Gonzalez, Pearson, Rogerson (capt).
Replacements: Ruiz, Fischetti, Parker, Munga, Basham, Cunningham-South, Powell, Dykes.
DHL Stormers: Willemse; Hartzenberg, Nel, Du Plessis, Davids; Libbok, De Wet; Kitshoff (capt), Dweba, Fouche, Evans, Orie, Fourie, Pokomela, Dayimani.
Replacements: Venter, Vermaak, Harris, Miller, Dixon, Engelbrecht, Ungerer, Feinberg-Mngomezulu.