Blades goalkeeper George Long saved Kyle Vassell's first-half spot kick.
Billy Sharp then put the visitors ahead with a low shot, his 20th goal of the season, only for Abu Ogogo to level from Sullay Kaikai's cross.
But Che Adams won it for United, who are four points outside the top six, firing in low from the edge of the box.
Shrewsbury are now without a win in seven games, during which they have picked up just four points out of a possible 21.
Shrewsbury manager Micky Mellon told BBC Radio Shropshire:
"If I'm absolutely honest, which I always try to be, I thought the only team that was going to score was us because we looked like we had the momentum.
"But then a bit of slack defending from a throw-in and we got punished. It was hugely frustrating.
"I couldn't fault much of the performance. We deserved much more than we got, but a bit of loose defending on two occasions cost us."
Sheffield United kept their slim League One play-off hopes alive by beating Shrewsbury Town, who are just two points above the relegation zone.