Charlton moved up to second in the Championship by outclassing Cardiff, who are now only kept out of the relegation zone on goal difference.
The Bluebirds held out until moments before half-time, when Sam Sodje was given too much space to convert Andy Reid's left-wing cross from six yards.
Then, still in first-half injury time, Chris Iwelumo scored from 25 yards out.
Zheng Zhi made the game secure 10 minutes from time when he headed in another quality free-kick from Reid.
Charlton manager Alan Pardew:
"When they had their good spell we threw our bodies in the way and we defended very well.
"With the two-goal cushion we did invite them to try and break us down and then look to hit them on the break.
"I think we can play a lot better in this system at home if our energy levels are higher."
Cardiff manager Dave Jones:
"You stand by your players, we're all in it together.
"We lost it in two minutes of madness where we gave the goals away, players have got to realise there are basic mistakes and they can't do that.
"There's always going to be pressure in football, but it's how you deal with it that counts."
Charlton: Weaver, Mills, Sodje, Fortune, Basey, Sam (Ambrose 77), Zhi (McLeod 84), Semedo, Reid, Jerome Thomas, Iwelumo (Varney 84). Subs Not Used: Randolph, Bougherra.
Goals: Sodje 45, Iwelumo 45, Zhi 80.
Cardiff: Schmeichel, McNaughton, Purse, Johnson, Capaldi, Ledley, Rae, McPhail, Parry (Whittingham 69), Hasselbaink (Fowler 79), Thompson. Subs Not Used: Oakes, Loovens, MacLean.
Booked: Capaldi, McPhail, Thompson.
Ref: Michael Jones (Cheshire).