A hugely controverial 90th minute own goal from Luke McGee helped condemn Posh to defeat.Peterborough United conceded twice in stoppage, the first a hugely controversial Luke McGee own goal, as Walsall secured a 2-0 win at the Banks's Stadium.
It was a lively start to the contest with Posh winning a corner inside the opening 30 seconds and moments later, the first chance was carved out, Morias leading the charge, he fed Edwards' who saw his dinked cross met by Mackail-Smith at the back post, his header looked goalbound but was cleared.
Edwards found Hughes at the back post on eight minutes, the defender leaping above his marker and sending a header towards goal only for O'Connor to clear the danger.
Morias whipped a free-kick just over the crossbar on the quarter hour mark after a foul on Edwards. McGee produced a fine reaction save to deny Jackson at the near post on 24 minutes after a low centre from McCarthy from the right.
Forrester fired over from 25-yards after an intelligent lay-off from Morias, a presentable chance to test Walsall goalkeeper Etheridge wasted.
Mackail-Smith was denied his 100th goal for the club by goalkeeper Etheridge on 31 minutes, the keeper beating away his fierce half-volley.
Grant was cautioned for a foul on 33 minutes, his 10th caution of the season, which will mean he will miss the fixtures with Southend, his former club, and Millwall.
McGee beat away a fierce drive from McCarthy in stoppage time before the referee brought an end to an entertaining first period of football.
There were no changes made in personnel at the interval by either side. Morias was superbly denied by Etheridge on 53 minutes, his left-foot strike somehow kept out at the near post.
Morias fired over with a free-kick on 58 minutes, a poor effort given the location of the set-piece. Taylor fired into the wall with an inventive free-kick moments later.
Jackson was booked for tripping McGee on 63 minutes by referee Mr Haywood. Posh made a very attacking change on 68 minutes with Marcus Maddison and Lee Angol replacing Smith and Taylor.
Morris fired wide from 30-yards as Posh adjusted to their new formation of three at the back. Chambers then flashed a cross across goal which just eluded everyone in the six-yard box.
Posh were forced into a change on 81 minutes as Gwion Edwards was stretchered off following a fairly innocuous challenge in midfield. Martin Samuelsen was his replacement.
Etheridge denied a low shot from Forrester on 87 minutes while at the other end, Morris sent a rasping drive over the crossbar.
Seven minutes of added time was indicated by the fourth official for the stoppage that caused Edwards to be stretchered off.
On 93 minutes, the home side grabbed a winner as an Oztumer corner was fumbled into his own net under pressure from Bakayoko by McGee. The goalkeeper was booked for his protests. Forrester was shown a straight red card for dissent.
Walsall grabbed a second in the seventh minute of stoppage time as MORRIS squeezed a shot through the legs of McGee after Grant had been dispossessed.
Walsall: Etheridge, Edwards, O'Connor, McCarthy, Chambers, Jackson (sub Bakayoko 71min), Oztumer (sub Moussa 90min), Morris, Osbourne (sub Dobson 67min), Preston, O'Connell. Unused subs: MacGillivray, Laird, Randall, Roberts.
Posh: McGee, Smith (sub Angol 68min), Hughes, Tafazolli, Ball, Forrester, Edwards (sub Samuelsen 83min), Grant, Taylor (sub Maddison 68min), Mackail-Smith, Morias. Unused subs: Tyler, Baldwin, Angol, Da Silva Lopes, Nichols.
Half-time: Walsall 0-0 Peterborough United
Full-time: Walsall 2-0 Peterborough United
Attendance: 4,759 (571 Posh fans)