The Rams were staring at a third straight defeat after a Danny Haynes wonder-strike put the hosts ahead in the first half.
But after the break Charlton defender Michael Morrison fouled Richard Keogh in the area to earn a second booking and Ward, back after three months out injured, tucked in the spot-kick.
Charlton kicked off on the back of three straight defeats but took the lead when Haynes conjured up a stunning solo goal.
There seemed little danger when the striker collected the ball back in midfield with 19 minutes on the clock. But he drifted out wide before swiftly cutting back inside and unleashing a rocket from 25 yards into the top corner.
However, Haynes' afternoon was cut short after just half an hour when he pulled up with a hamstring injury and was replaced by Bradley Wright-Phillips
Charlton could have doubled their advantage before half-time when Yann Kermorgant chipped into the area but Morrison glanced his header wide.
Bradley Wright-Phillips was then put through by Johnnie Jackson but Derby goalkeeper Adam Legzdins charged out of his goal to make a fine block.
Bradley Pritchard went agonisingly close to a second just after the hour mark when he met Wright-Phillips' cross but crashed his shot against the crossbar. But the match turned in the 69th minute when Morrison, who had been booked in the first half, slid in on Keogh and was shown a second yellow card, followed by a red.
Ward, who had replaced Will Hughes just two minutes earlier, stepped up and sent HBen amer the wrong way from the spot. Derby could have snatched the win with eight minutes to go but John Brayford's header came back off the post.