Watford secured successive league wins for the first time under Gianfranco Zola, despite Fernando Forestieri's controversial first-half sending off.
Tommie Hoban put the Hornets in front midway through the opening period, only for Ricardo Fuller to equalise for Charlton 10 minutes before half-time.
Watford suffered a further setback when Forestieri was shown a second yellow card for diving.
But they snatched the points thanks to Almen Abdi's 70th-minute free-kick.
It was the dismissal of Forestieri that was the main talking point at the final whistle, however.
The on-loan Italian midfielder picked up his first booking early in the match and was handed his marching orders in stoppage time at the end of the first half as referee Mike Dean adjudged him to have taken a tumble in the box.
Forestieri had helped Watford go ahead after 29 minutes as his corner was nodded home by 18-year-old Hoban in what was only his third first-team appearance for the Hornets.
The lead lasted only six minutes, though, as Charlton struck back, Dale Stephens threading a defence-splitting pass to Fuller, who buried it in the bottom right-hand corner.
With Watford reduced to 10 men, Charlton's numerical advantage allowed them to dominate the majority of the second half, with Bradley Wright-Phillips denied by Manuel Almunia shortly after the restart.
Wright-Phillips curled over under pressure from Neuton as Charlton continued to press, before Almunia saved another effort from the striker with his feet.
Chris Powell's side may have bossed the second period but they fell behind with 20 minutes remaining when Abdi expertly curled home a 25-yard free-kick.
Troy Deeney then saw an attempt to double the Hornets' lead well saved as the game became an increasingly tense affair.
Charlton camped themselves in the Watford half as they pushed for a late leveller but could not find a way through, with Stephens coming closest from 20 yards.
Watford manager Gianfranco Zola:
"I've seen the video and spoken to Fernando. He told me that he just slipped and that he didn't dive. If you watched the game we played at Huddersfield the other day, in the first half he kept slipping.
"I keep telling him off and telling him to change his boots. He is Argentinian and likes his boots without big studs and on this pitch it was slippy. He keeps doing the same mistake but I don't think he wanted to dive.
"It was a pity Mike [Dean] saw it as a dive and it was disappointing as he was playing a good match. I told him that I don't want him diving and if I find out he is diving he is not going to play, but he said he didn't dive and I have faith in my players."
Charlton manager Chris Powell:
"I always knew it was going to be tough. That is just how this league is.
"It is unforgiving and tonight we have been hurt by two set plays. I think Ben Hamer only had two saves to make and we've lost the game. We've had 15 chances but only taken one so you have to try to be as clinical as you can. It is going to be a tough old season, no doubt about it.
"There will be a few ups, a few downs but you've just got to keep going."
Jonathan Hogg challenges Chris Solly unfairly and gives away a free kick. Dale Stephens takes the direct free kick.
A cross is delivered by Salim Kerkar.
Foul by Ricardo Fuller on Joel Ekstrand, free kick awarded. Manuel Almunia takes the direct free kick.
Bradley Wright-Phillips takes a shot. Joel Ekstrand gets a block in.
Direct free kick taken by Chris Solly.
Booking Almen Abdi booked.
Lawrie Wilson fouled by Almen Abdi, the ref awards a free kick.
Outswinging corner taken from the right by-line by Dale Stephens. The referee gives a free kick against Michael Morrison for handball. Free kick taken by Manuel Almunia.
Direct free kick taken by Salim Kerkar.
Substitution Bradley Pritchard is brought on as a substitute for Danny Hollands.
Substitution Robert Hulse on for Danny Green.
Marco Cassetti challenges Salim Kerkar unfairly and gives away a free kick.
Dale Stephens challenges Troy Deeney unfairly and gives away a free kick. Direct strike on goal from the free kick comes in from Almen Abdi, Salim Kerkar gets a block in.
Ben Hamer is penalised for a handball. Free kick taken by Almen Abdi. Troy Deeney takes a shot. Danny Green gets a block in.
Ricardo Fuller has a headed effort at goal from close in which goes wide of the left-hand upright.
Substitution Joel Ekstrand comes on in place of Piccoli Neuton.
Corner from the left by-line taken by Salim Kerkar, Almen Abdi makes a clearance.
Lawrie Wilson produces a cross, Ricardo Fuller takes a shot. Tommie Hoban gets a block in.
Bradley Wright-Phillips challenges Jonathan Hogg unfairly and gives away a free kick. Manuel Almunia takes the free kick.
Troy Deeney takes a shot. Ben Hamer makes a comfortable save.
Assist on the goal came from Troy Deeney.
69:10 Goal scored
Goal! - Almen Abdi - Charlton 1 - 2 Watford Free kick scored by Almen Abdi from outside the area to the top left corner of the goal. Charlton 1-2 Watford.
Leon Cort gives away a free kick for an unfair challenge on Troy Deeney.
Manuel Almunia takes the free kick.
Booking Danny Green is cautioned.
Foul by Danny Green on Daniel Pudil, free kick awarded.
The ball is swung over by Chris Solly.
Danny Green crosses the ball, Manuel Almunia makes a save.
Nathaniel Chalobah fouled by Dale Stephens, the ref awards a free kick. Fitz Hall takes the direct free kick.
Dale Stephens takes a shot. Jonathan Hogg gets a block in. Danny Green sends in a cross, save made by Manuel Almunia.
Ricardo Fuller takes a shot. Save by Manuel Almunia. Dale Stephens takes a shot. Blocked by Almen Abdi. Inswinging corner taken by Salim Kerkar, Fitz Hall manages to make a clearance.
Free kick awarded for a foul by Troy Deeney on Chris Solly. Chris Solly restarts play with the free kick. The ball is sent over by Salim Kerkar.
Troy Deeney takes a shot. Save made by Ben Hamer. Bradley Wright-Phillips takes a shot from just inside the penalty box which clears the bar.
Inswinging corner taken left-footed by Salim Kerkar from the right by-line, Jonathan Hogg manages to make a clearance.
Chris Solly takes a shot. Almen Abdi gets a block in. The ball is swung over by Danny Green, Tommie Hoban makes a clearance.
Salim Kerkar crosses the ball in from the free kick.
Booking Booking for Piccoli Neuton.
Unfair challenge on Salim Kerkar by Piccoli Neuton results in a free kick.
Dale Stephens takes a shot. Blocked by Piccoli Neuton. Inswinging corner taken from the right by-line by Salim Kerkar, Troy Deeney manages to make a clearance.
A cross is delivered by Danny Green, clearance by Fitz Hall.
Effort from 25 yards by Bradley Wright-Phillips. Save by Manuel Almunia.
Daniel Pudil crosses the ball.
Danny Hollands concedes a free kick for a foul on Almen Abdi. Fitz Hall restarts play with the free kick.
The ball is delivered by Lawrie Wilson, Marco Cassetti manages to make a clearance.
Free kick awarded for a foul by Daniel Pudil on Bradley Wright-Phillips. Free kick crossed left-footed by Salim Kerkar from right wing, clearance by Tommie Hoban.
The game restarts for the second half.
45:00 +2:19 Half time
Half Time The referee blows for half time.
45:00 +2:12 Booking
Booking Daniel Pudil goes into the book for dissent.
Ben Hamer restarts play with the free kick.
45:00 +1:32 Dismissal
Dismissal Fernando Forestieri sent off.
The ball is sent over by Marco Cassetti, Lawrie Wilson manages to make a clearance. Corner taken right-footed by Fernando Forestieri, Michael Morrison makes a clearance.
Effort from inside the area by Fernando Forestieri misses to the right of the target.
Strike comes in from Almen Abdi from the free kick.
Booking Michael Morrison is shown a yellow card for unsporting behaviour.
Free kick awarded for an unfair challenge on Fernando Forestieri by Michael Morrison.
Free kick awarded for a foul by Tommie Hoban on Salim Kerkar. The ball is crossed by Dale Stephens, Headed effort from inside the box by Danny Hollands misses to the right of the target.
Dale Stephens provided the assist for the goal.
34:04 Goal scored
Goal! - Ricardo Fuller - Charlton 1 - 1 Watford Ricardo Fuller grabs a goal from deep inside the penalty box to the bottom right corner of the goal. Charlton 1-1 Watford.
Free kick awarded for an unfair challenge on Fitz Hall by Bradley Wright-Phillips. Manuel Almunia restarts play with the free kick.
Troy Deeney takes a shot. Ben Hamer makes a comfortable save.
The ball is sent over by Marco Cassetti, blocked by Chris Solly.
Free kick awarded for an unfair challenge on Danny Green by Daniel Pudil. Danny Green restarts play with the free kick. Free kick awarded for a foul by Almen Abdi on Lawrie Wilson. Lawrie Wilson takes the direct free kick.
Assist by Fernando Forestieri.
28:50 Goal scored
Goal! - Tommie Hoban - Charlton 0 - 1 Watford Tommie Hoban grabs a headed goal from inside the area. Charlton 0-1 Watford.
Corner from the right by-line taken by Fernando Forestieri,
Free kick awarded for an unfair challenge on Fernando Forestieri by Michael Morrison. Free kick taken by Nathaniel Chalobah.
Handball by Leon Cort. Almen Abdi takes the free kick. Fitz Hall gives away a free kick for an unfair challenge on Leon Cort. Free kick taken by Ben Hamer.
Daniel Pudil delivers the ball, Leon Cort makes a clearance. The ball is crossed by Marco Cassetti, save by Ben Hamer.
Danny Green sends in a cross, Piccoli Neuton manages to make a clearance.
Danny Green takes the outswinging corner, Fitz Hall manages to make a clearance. Lawrie Wilson takes a shot. Blocked by Almen Abdi.
The ball is sent over by Bradley Wright-Phillips, Daniel Pudil manages to make a clearance.
Ricardo Fuller fouled by Piccoli Neuton, the ref awards a free kick. Dale Stephens takes the free kick.
Blocked by Troy Deeney. Inswinging corner taken by Salim Kerkar.
Booking Fernando Forestieri booked for unsporting behaviour.
Foul by Piccoli Neuton on Ricardo Fuller, free kick awarded. Salim Kerkar fires a strike on goal direct from the free kick,
Centre by Salim Kerkar, Piccoli Neuton manages to make a clearance. Drilled right-footed shot by Troy Deeney. Save made by Ben Hamer.
Daniel Pudil delivers the ball.
Free kick awarded for an unfair challenge on Danny Hollands by Jonathan Hogg. Direct free kick taken by Ben Hamer.
The ball is sent over by Salim Kerkar.
Danny Hollands produces a cross, Marco Cassetti gets a block in.
The ball is delivered by Danny Hollands, Marco Cassetti gets a block in.
Free kick awarded for a foul by Ricardo Fuller on Piccoli Neuton. Free kick taken by Manuel Almunia.
This page is best viewed in an up-to-date web browser with style sheets (CSS) enabled. While you will be able to view the content of this page in your current browser, you will not be able to get the full visual experience. Please consider upgrading your browser software or enabling style sheets (CSS) if you are able to do so.