It was almost the perfect day for Posh as Darren Ferguson’s men picked up three points as others around them faltered.

Jonson Clarke-Harris took his goal tally to 31 in all competitions and 29 in the league as Peterborough United recorded a 1-0 victory at Charlton Athletic, which means three points against Doncaster Rovers on Tuesday night will complete the season objective.

Sammie Szmodics saw an early effort blocked after excellent work from Jack Taylor and Joe Ward down the right hand side of the Posh attack. Posh opened the scoring on eight minutes as a clipped pass forward from Kent was flicked inside by Szmodics and Jonson CLARKE-HARRIS rifled home into the bottom corner from the edge of the box.

Posh had a great chance to double the lead on 17 minutes as Kent picked out Szmodics in space, he took a touch and attempted to curl the ball past Amos, but the keeper got a fingertip to it and diverted it wide of the target.

The hosts were forced into a change on 23 minutes with Jaiyesimi limping out of the action to be replaced by Albie Morgan. The home side won a penalty on the half hour mark as Gilbey was upended by Kent in the box. Stockley took the spot-kick, but keeper Josef Bursik made a stunning stop diving to his right.

Thompson was cautioned as the first half moved into stoppage time, the former Portsmouth man clipping his man as he cut inside. Posh defended a number of late first half free-kicks well before referee Keith Stroud brought an end to the first half.

Stockley glanced a header from a Purrington cross over the bar via a nick off a Posh defender as the hosts made a strong start to the second period. Gilbey was yellow carded for a foul on Dembele in the centre of the pitch on 54 minutes by referee Keith Stroud.

Bursik produced a fine stop to keep out a low Gilbey effort after he advanced from midfield unchallenged on 57 minutes. Posh had another good chance to make it 2-0 on the hour mark as Dembele reversed a pass into the path of Szmodics, but he lifted the ball over the crossbar with just the keeper to beat.

Darren Ferguson made his first change on 67 minutes with Louis Reed replacing Hamilton in midfield. On 78 minutes, Forster-Caskey sent a shot inches wide via a deflection with Bursik rooted to the spot.

Harrison Burrows replaced Dembele three minutes from time as Ferguson shuffled his pack. In stoppage time, Szmodics struck the inside of the post after Ward and Clarke-Harris had pressed from the front.

Charlton: Amos, Purrington  Pearce, Jaiyesimi (sub Morgan 23min, sub Washington 83min)), Forster-Caskey, Stockley, Gilbey (sub Aneke 76min), Matthews, Inniss (sub Famewo 83min), Watson, Millar. Unused subs: Maynard-Brewer, Gunter, Pratley.

Posh: Bursik, Butler, Thompson (sub Mason 70min), Beevers, Kent, Taylor, Clarke-Harris, Dembele (sub Burrows 87min), Szmodics, Hamilton (sub Reed 67min), Ward. Unused subs: Gyollai, Eisa, Jones, Kanu.

Half-time: Charlton Athletic 0-1 Peterborough United
Full-time: Charlton Athletic 0-1 Peterborough United
Referee: Keith Stroud