A Ricardo Fuller special and a goal from Yann Kermorgant handed victory to Charlton and increased the pressure on bottom side Peterborough.
Darren Ferguson's men had looked the most likely side to score until Fuller fired in from 25 yards.
The Jamaican striker had to come off with an injury, but Charlton wrapped up the win when Kermorgant tapped in.
Posh are now four points adrift of safety at the foot of the Championship, and have not won in a month.
Charlton impressed in the first half at The Valley but failed to take their chances, with Bradley Pritchard then hitting the post moments after the restart.
That header jolted Peterborough into life.
On-loan Dagenham man Dwight Gayle was denied his first goal for the Posh by Ben Hamer, before George Boyd also forced the keeper into a save.
Lee Tomlin then turned a Boyd shot onto the post before Fuller struck, holding off his man and firing in a fine effort from 25 yards.
While the summer signing had to hobble off immediately, Chris Powell's side were celebrating again five minutes from time when Kermorgant turned in substitute Danny Green's right-wing cross.
Charlton boss Chris Powell: "There is going to be times when we are going to play better and not get much in return.
"I'll definitely take this. We've been thin on the ground at home, but we got a clean sheet.
"We have 13 points out of the last 15 so I can't complain. We've played better this year and lost so it is about time.
"Over the course of the season sometimes you might not merit the win, but because of your discipline and doggedness, which we needed this evening, you get wins."
Peterborough boss Darren Ferguson: "The better team lost. It is just unfortunate maybe the way things are going at the moment.
"We didn't get a break, like the one that spun off Lee Tomlin and hit the post. We had a very, very, very good performance.
"I think you've got to take the positives out of any game and I've seen enough tonight to tell me we'll be OK.
"I think if any neutral had been at the game tonight and had looked at the league table before the game, that performance would not suggest we deserve to be at the bottom."