Daniel Udoh fired a 69th-minute winner as Shrewsbury edged Bristol Rovers 1-0 in a scrappy Sky Bet League One clash at the Memorial Stadium.
A strong run by Ro-Shaun Williams set up the chance and Udoh netted with a low left-footed shot from 20 yards.
It earned the Shrews three deserved points from a game that was dominated by a swirling wind and desperately low on quality.
Rovers' Jamal Blackman was by far the busier goalkeeper in the first half, making fine saves to keep out shots from Udoh and Callum Lang.
The home side found it difficult to create any chances, although Jayden Mitchell-Lawson should have done better when firing wildly wide on 21 minutes.
Rovers were just as impotent in the second half and there was only one moment of anxiety for Shrews goalkeeper Max O'Leary, on loan from Bristol City.
That came when Alfie Kilgour met a Liam Sercombe free-kick with a firm 53rd-minute header, which O'Leary stretched to palm clear.
Rovers fans greeted the final whistle with loud jeers as their struggles under manager Ben Garner continued.