Shrewsbury Town brought their five-match run without a win to an end as they came from behind to beat Peterborough United 2-1 at Gay Meadow.
Shrewsbury, who before this match had not scored a goal from open play since early January fell behind to a 38th minute penalty from Danny Crow as the visitors had easily the better of a lacklustre first half.
But the home side hit back with a vastly improved second-half display, which brought a goal from Neil Sorvel and a late winner from substitute Kelvin Langmead.
Indeed, it was the introduction of Langmead and fellow sub Mark Stallard that did most to turn the tide in Shrewsbury's favour. After barely an effort of note in the first half, they peppered the Peterborough goal with efforts after the break and ultimately ran out deserving winners.
With confidence understandably low after a poor run of form, Town made a tentative start and it needed some alert goalkeeping from teenager Joe Hart to thwart a dangerous cross from the lively Adam Newton in the 23rd minute.
But the England Under-18 international could do nothing as Posh deservedly went ahead seven minutes before the break.
Newton went tumbling in the box under the challenge of Ben Herd and from the ensuing penalty kick, Crow side-footed Posh ahead.
But from the outset of the second half, Shrewsbury carried a far more potent threat and with substitutes Langmead and Stallard bringing more thrust to their forward play, the visitors' defence came under some heavy pressure.
They finally cracked in the 59th minute when Sorvel netted with a deft lob after the visitors could only clear a free-kick to the edge of the box.
Central defenders Sagi Burton and Richard Hope, along with Sorvel all went close to landing the knockout blow, before Langmead struck decisively with just four minutes remaining.
Sorvel's in-swinging free-kick tempted Posh keeper Lee Harrison from his line, but he was beaten to the ball by Langmead, who notched his sixth goal of the season with a neat glancing header.