Close-range and messy goals in the final 16 minutes from James Garner and Ryan Yates settled the contest and the bare facts will show Posh have now failed to score in five consecutive matches for the first time since 2002 - a run they eventually stretched to seven matches back then.
But Posh were pretty good on the ball for 45 minutes here and they defended doggedly for most of the second-half. They played better and competed more impressively than in most away games this season, but the outcome was the same. Ten defeats in 11 away games and in eight of those games they haven’t managed to score.
They saw a lot of the ball before the break here, but home goalkeeper Brice Samba had a comfortable 90 minutes and resorted to some irritating showboating late on. Only Siriki Dembele’s shot against the outside of the post early in the second-half caused him any concern, and really he should have scored.
Posh made two changes to their starting line-up with Oliver Norburn replacing Conor Coventry in midfield and Jorge Grant coming in for teenage striker Kai Corbett. It was a big call-up for Forest academy graduate Grant who had spent the two previous Championship matches twiddling his thumbs on the substitutes’ bench.
Grant’s big chance to issue a talent reminder arrived in the 18th minute after excellence from Dembele freed him inside the area. It was a chance crying out for a first-time shot with his left foot, but he went with his right and a weak effort was comfortably grabbed by home Samba.
Posh played well before the break. A flat back four returned with Grant loitering around on the right of a midfield diamond and Jack Taylor pleasingly pushed further forward to play behind the front two.
And once Dai Cornell had flown through the air to beat away Philip Zinckernagel’s 25 yarder in the first minute, the visitors bossed possession.
Clear-cut chances were rare, but neat passing patterns were constructed and crosses came in. Samba did well to punch one Grant centre off the head of Taylor.
Dembele’s low shot was saved and the tricky forward appeared to beat Joe Worrall in the penalty area before slipping.
Referee Thomas Bramall then started annoying both technical areas with his decision-making with Posh the more aggrieved. Lewis Grabban shot into the side netting after one soft free kick award. Forest then conceded a free kick on the edge of their own area with a deliberate handball that wasn’t punished with a caution.
Clarke-Harris struck the set-piece which was blocked by an onrushing defender who must have got to within five yards of the ball. Again, no re-take or caution.
Half-time gave everyone the opportunity to calm down with Posh presumably expecting some sort of reaction from their hosts who were playing in front of their biggest City Ground attendance of the season, just over 28,000.
Forest came out fast with Braian Ojeda poking Brennan Johnson’s cross wide at the far post and Grabban shooting wide from 20 yards, but although the home side were now seeing far more of the ball, it was Posh who had the best opportunity to open the scoring.
And it fell to the right man as well as Dembele pounced after Clarke-Harris headed on Cornell’s long kick, but, although his left-foot shot beat Samba, the ball cannoned into the outside of the post.
Posh never threatened again and it became a case of resisting a team that lacked imagination and wit going forward. They did it comfortably to be fair as Forest resorted to appealing for optimistic penalties.
Ironically Posh were then undone 20 minutes from time after one of their few forays forward. Centre-back Josh Knight drove into the penalty area, but instead of shooting he threw himself acrobatically to the ground in a vain attempt to win a penalty.
Forest picked up the ball up switched the play the play to the right and Johnson’s cross eventually reached James Garner at the far post for a tap-in.
Posh responded by sending Sammie Szmodics, but to no avail. They didn’t manage a single shot after falling behind.
A second goal six minutes from time was harsh and a little fortunate as the ball appeared to hit Ryan Yates from a corner, but how the ball travelled so low and so far can be questioned.
Posh have been asked many searching questions this season and they have found few acceptable answers.
Posh: Dai Cornell, Dan Butler, Ronnie Edwards, Josh Knight, Nathan Thompson, Harrison Burrows (sub Conor Coventry, 68 mins), Jack Taylor, Oliver Norburn (sub Sammie Szmodics, 78 mins), Jorge Grant, Siriki Dembele, Jonson Clarke-Harris.
Unused substitutes: Will Blackmore, Joe Tomlinson, Frankie Kent, Mark Beevers, Kai Corbett.
Forest: Brice Samba, Djed Spence, Scott McKenna, Joe Worrall, Ryan Yates, James Garner, Braian Ojeda (sub Cafu, 80 mins), Jack Colback, Philip Zinckernagel, Brennan Johnson, Lewis Grabban (sub Lyle Taylor, 85 mins).ay
Unused substitutes: Ethan Horvath, Tobias Figueiredo, Gaeten Bong, Joao Carvalho, Alex Mighten.
Goals: Forest - Garner (73 mins), Yates (84 mins).
Cautions: Posh - Clarke-Harris (foul), Butler (foul), Thompson (foul), Edwards (foul).
Forest - Samba (time wasting).
Referee: Thomas Bramall 5.
Attendance: 28,308 (1,987 Posh).