Posh were 2-0 up through Jack Marriott’s first-half strike and a Jonson Clarke-Harris penalty midway through the second period and looked comfortable against a limited home side as the game approached the final five minutes.
But then disaster struck. Substitute Gary Gardner volleyed home from 16 yards after Posh only half-cleared a cross and 60 seconds later, Birmingham delivered a moment of high quality to pinch a point.
Another replacement, Jeremie Bela, sent over a delicious left-wing cross which Scott Hogan glanched home expertly.
Incredibly Posh almost went on to lose. Oliver Norburn did well to block a 12-yard shot and Lucas Jutkiewicz missed horribly with his head when unmarked six yards from goal.
It will be a head scratcher for Posh manager Darren Ferguson though as well as a kick where it hurts. A win would have dragged Posh level with Reading with a game in hand. As it is, the one remaining game in hand must be won for Posh to escape the bottom three.
There was some big news pre-match as star forward Siriki Dembele was absent from the Posh matchday squad. A combination of foot and back injuries according to the club, but saving himself for a big-money transfer window move to Bournemouth according to the less well-informed Twitter sceptics.
Teenage defender Ronnie Edwards was also missing because of injury, leaving Posh boss Darren Ferguson to reunite his League One promotion-winning centre-back team of Mark Beevers, Nathan Thompson and Frankie Kent. Wing-backs were retained.
Jorge Grant was dropped to the substitutes’ bench as Kwame Poku stepped up for his first start at Championship level. Jack Marriott was picked to start for the first time since September with on-loan Callum Morton on the bench.
And Poku’s impact was immediate. After 15 minutes of stop-start football and Birmingham long balls, the 20 year-old made a tackle 10 yards outside his own area, collected the loose ball and advanced with menace. He had two options, a simple pass to Harrison Burrows or a trickier one inside to Marriott. He chose the latter and delivered it perfectly enabling Marriott to finish and claim his second goal of the season and just a seventh away from home this season.
Before the goal Kristian Pedersen had headed a home free kick wide, but it was soon obvious if Posh could keep the ball they would cause problems. Clarke-Harris was winning headers, Burrows was loving the freedom on his flank and Jack Taylor was a big presence in the middle of the park.
A misplaced Marriott pass just outside the Birmingham area led to a quick break and Jutkiewicz firing wide from 12 yards from Hogan’s pass, but always looked the better side in possession.
Indeed they almost scored a goal of the season contender in the 41st minute. The ball travelled through Bali Mumba, Poku, Clarke-Harris and Burrows before the latter’s cross was met by Taylor at the near post. It was far from an easy chance, but the ball was flicked goalwards and home ‘keeper Neil Etheridge saved well.
A minute later and Burrows sent in another dangerous cross that Etheridge just scrambled clear as Posh prepared to pounce.
The hosts made a half-time substitution and pushed three forwards onto three Posh centre-backs.
Posh introduced Callum Morton for Marriott on the hour, presumably a pre-planned move as Clarke-Harris and the goalscorers showed signs of a promising partnership.
And he almost made a terrific start to his Posh career. Mumba’s superb pass freed him in the area, but Etheridge was out quickly to save.
Benda was called into action to kick away substitute Gary Gardner’s shot on 65 minutes, but Posh then broke away to take a stranglehold on the game within 60 seconds.
Thompson headed clear, Morton picked the ball up and squared to Burrows who promptly sent Morton away down the left. Home centre-back Marc Roberts did well to catch up with him in the area, but referee Oliver Langford detected a slight nudge in the back and awarded a spot-kick.
Clarke-Harris did the rest, sending Etheridge the wrong way from the spot and perhaps settle a few personal demons while improving his confidence.
Morton was soon galloping away again, but his precise cut back was wasted by Poku’s wild shot over the bar from 20 yards.
Posh were so comfortable the home crowd started to walk out with 10 minutes remaining. It was a big mistake given Posh’s habit of shipping late goals and of conceding goals in bunches.
Posh: Steven Benda, Bali Mumba, Frankie Kent, Mark Beevers, Nathan Thompson, Jack Taylor, Oliver Norburn, Jorge Grant, Harrison Burrows, Kwame Poku (sub Sammie Szmodics, 86 mins), Jack Marriott (sub Callum Morton, 62 mins), Jonson Clarke-Harris (sub Josh Knight, 86 mins).
Unused substitutes: Will Blackmore, Joe Ward, Jorge Grant, Joe Tomlinson.
Birmingham: Niel Etheridge, Maxime Colin, Marc Roberts, Teden Mengi, Kristian Pedersen, Ryan Woods, Jordan James, Ivan Sunjic, Onel Hernandez, Lukas Jutkiewicz, Scott Hogan.
Subs: Connal Trueman, George Friend, Tate Campbell, Gary Gardner, Jobe Billingham, Jeremie Bela, Jordan Graham.
Goals: Posh - Marriott (16 mins), Clarke-Harris (67, pen).
Birmingham - Gardner (86), Hogan (88).
Cautions: Posh - Kent (foul).
Referee: Oliver Langford 7.
Attendance: 16,380 (714 Posh).