There was little between the sides during an uninspiring opening 20 minutes until Boro midfielder James Dunne fired the visitors in front with a glorious strike.
Dunne chested the ball down on the edge of the penalty area and hammered an unstoppable volley into the top corner of the net with his right foot.
Shrewsbury perked up once they fell behind and, after Stephen McGinn fired narrowly wide from distance, they pulled level after half an hour.
Matt Richards delivered a cross from the left which former Wales international winger Paul Parry controlled before driving a low shot into the bottom corner of Chris Day's net from eight yards out.
There were chances at either end after the break, Chris Weale saved well from Marcus Haber's header before Shrews striker Chris Porter headed over from close range.
The winner eventually arrived four minutes from time when Jon Taylor broke into the box and crossed from the right for Morgan, his fellow substitute, to take a touch before finding the net for his seventh goal of the season.
Stevenage nearly avoided a fourth straight defeat but a stoppage-time header from skipper Mark Roberts was brilliantly saved by Weale, diving full length to his left.