This game turned on a mad 60 seconds. Paul Taylor was superbly denied by goalkeeper Jayson Leutwiler and moments later the ball was in the Posh net as Ian Black looped home a header. From the re-start, a slip allowed Leitch-Smith to burst clear, he was hauled down by Ryan Tafazolli who was shown a straight red card.
Goalkeeper Luke McGee produced a fine stop to deny Black from the spot and some resolute defending alllowed Posh to claim a point.
Grant McCann's men made a bright start and carved out a number of presentable opportunities in the opening exchanges, Tom Nichols heading a perfect Michael Smith centre over the bar inside the opening 90 seconds.
Nichols fired wide moments later after collecting a driven Taylor pass before captain Chris Forrester sent a shot over the crossbar from 25-yards.
Taylor fired wide and Maddison saw a shot blocked before goalkeeper Luke McGee made a fine stop to deny Whalley's effort from range.
A Taylor header struck Nichols from a Maddison set-piece but the next time the winger had the chance from a dead ball, it led to the opening goal. Maddison's inch perfect free-kick was glanced into the back of the net via a deflection by Gwion EDWARDS for his sixth goal of the campaign.
Maddison and Taylor both fired wide from range as the first half progressed and on 40 minutes, the former was expectly denied by Leutwiler after a swift counter attack started by Smith.
McGee and Whalley resumed their battle, again the Posh keeper coming out on top, clawing the well struck shot around the post.
On the stroke of half-time, Posh had two wonderful opportunities, first Tafazolli saw a header clawed away by the keeper and then Maddison struck the base of the post with a 25-yard drive which left the keeper flat footed.
Taylor was superbly denied by Leutwiler from point blank range yet moments later, the home side were level as BLACK looped a header over McGee.
Less than 60 seconds later, it all went to pot as Tafazolli was sent off for bundling over Leitch-Smith in the box. Black stepped up from the spot, but McGee made a wonderful save.
Grant McCann made a change on 62 minutes with Hayden White replacing Moncur. Posh made a change on 75 minutes with Deon Moore replacing Nichols. Brown was denied by McGee on 86 minutes as the hosts pressed.
Shrewsbury: Leutwiler, Riley, McGivern, Black, Whalley (sub Dodds 71min), Brown, Grimmer, Sarcevic (sub Choulay 79min), Deegan, Leitch-Smith (sub Mangan 75min), El-Abd. Unused subs: Halstead, Lancashire, O'Brien, Ebanks-Blake.
Posh: McGee, Smith, Hughes, Bostwick, Tafazolli, Edwards, Forrester, Taylor, Maddison, Nichols (sub Moore 75min), Moncur (sub White 62min). Unused subs: Tyler, Baldwin, Da Silva Lopes, Chettle, Oduwa.
Half-time: Shrewsbury Town 0-1 Peterborough United
Full-time: Shrewsbury Town 1-1 Peterborough United
Attendance: 4,314 (203 Posh fans)