Angus MacDonald saw red for the hosts but Shrewsbury were on top throughout the game and deserved the three points which edges them closer to safety.
Defeat is a dent to Rotherham’s promotion hopes whose cushion in the automatic spots was reduced to four points.
Shrewsbury went ahead after 36 minutes when George Nurse slipped through Daniel Udoh who fired clinically into the bottom corner.
Rotherham were dealt another blow two minutes later with MacDonald dismissed for using an elbow during an aerial duel with Luke Leahy.
It could have been worse before the break but Matthew Pennington was denied in a scramble from a corner.
The points were secured in the 78th minute with Elliott Bennett on hand to tap in after Ryan Bowman was denied by Josh Vickers.
Bowman added his own name to the scoresheet in the first minute of added time with a composed finish.