
Charlie Kelman's goal was his fifth of the season and first since January.
Charlie Kelman's winner was enough to give Charlton a 1-0 victory over Birmingham City at The Valley and an important three points in their bid to move further clear of the relegation zone in the Championship.
The forward's fifth goal of the campaign came moments after coming off the bench, and settled a game of few clear-cut chances.
Prior to the winner, Tyrese Campbell had the best opening for the Addicks, denied only by a spectacular last-ditch block from Christoph Klarer to prevent the hosts taking the lead.
It is the first time Blues boss Chris Davies has lost three consecutive league games since taking charge at St Andrew's.
Charlton stay 18th but move nine points clear of danger, while Birmingham remain in 12th but slip eight points off the play-offs.
Only one of the previous 14 games between these two had produced more than two goals, so it came as no surprise that this was another tight encounter of few opportunities.
There was little to speak of in the opening exchanges before the hosts had numerous sights of goal in quick succession midway through the first half.
Strong work from Greg Docherty in midfield teed up Lyndon Dykes, but the striker's effort from 30 yards was off target.
Moments later, Harry Clarke found Kai Wagner in the way of his goalbound effort, and from the resulting corner Blues keeper Ryan Allsopp did enough to divert the ball away from Connor Coventry.
It was the same story after the break, and Blues' backline was called into action again when Campbell found himself clean through on goal, and it took a perfectly-timed challenge from Klarer to keep the score goalless.
The breakthrough came with just under 20 minutes remaining from Kelman's first touch after coming off the bench.
The striker brought down a long throw-in that had been flicked on, and fired home beyond Allsopp.
Birmingham – who had made five changes from the 3-1 defeat at home by Middlesbrough last time out – threatened late on via a counter attack that saw Ibrahim Osman fire just wide, but ultimately slipped to a third straight league defeat.
Miles Leaburn almost added some gloss to the scoreline for Charlton in injury time but could not direct his effort on target.
Who's next?
Both these teams are back in action on Wednesday, 11 March at 19:45.
Birmingham host QPR looking to return to winning ways, while Charlton visit Middlesbrough.
'Every win is massive' - reaction
Charlton boss Nathan Jones:
"Every win is massive in this league and this stage of the season. I felt it was thoroughly deserved.
"Others had won or picked up points, so we knew we had to do that as well. It's all about us getting to a points total we're comfortable with and building from there.
"I don't think we're close [to safety]. You won't feel that way until it is mathematical. That wasn't our goal after the first 15 games. We didn't expect to be in this position.
"We picked up injuries at the wrong time but now we're coming through that. The performance levels have been good lately, we haven't lost many. Could we have won a few more? Yeah. Have we let ourselves down with one or two performances? Yeah. But we are fighting and competing at this level, it's only our first year back."
Nathan Jones post Birmingham
Birmingham City head coach Chris Davies told BBC Radio WM:
"It was another disappointing result. We didn't do enough to win the game. It was a game of very, very few chances.
"We had some decent situations in the second half but didn't capitalise on when we had the momentum.
"It's such a soft way to lose - from a long throw into the box, bouncing ball, scrappy goal. It's very frustrating.
"We've got to do more. We can't expect to win gets if, in those critical moments, we don't defend well enough.
"I'm really frustrated. It was a game we let get away from us and I expected more. We've got to learn and we really need to pull together now and finish the season strong."
Chris Davies: 'We didn't do enough to win'
Player of the match
After the opportunity to rate players has closed, the score displayed represents the average from all the submissions by BBC Sport users.