Johnnie Jackson grabbed a late winner as Charlton twice came from behind to sink in-form Watford.
- Related Content
The Addicks skipper struck with a header at the end of a breathless encounter at Vicarage Road to secure a first win in seven for Chris Powell's side.
Daniel Pudil's early strike put Watford ahead but Charlton hit back through Tommie Hoban's own goal and Yann Kermorgant's header.
And after Almen Abdi's penalty and Alexandre Geijo's goal put Watford back in front, Kermorgant tucked in another equaliser before Jackson had the final say.
Hornets boss Gianfranco Zola made five changes from the side which beat Brighton on Saturday, surprisingly dropping goalscorers Troy Deeney and Matej Vydra to the bench.
He was partly vindicated as scoring goals did not prove a problem against the Addicks, but keeping them out did.
They struck first after 11 minutes when Geijo's low shot was saved by Ben Hamer and Pudil was on hand to steer in the rebound for his first goal for the club.
Jackson had the ball in the net soon after but all the midfielder had to show for it was a booking for handball.
However, the visitors did draw level in the 33rd minute when Jackson swung in a corner, Watford failed to clear and the ball eventually went in off Hornets defender Hoban.
And three minutes later Charlton were ahead when Kermorgant powered a far-post header past Manuel Almunia from Bradley Pritchard's cross.
Watford started the second half strongly and Geijo teed up Fernando Forestieri, who was denied by the feet of Hamer.
But the Addicks goalkeeper could do nothing to prevent Watford equalising in the 52nd minute after Dorian Dervite tripped Forestieri in the area and Abdi tucked away the penalty.
Hamer then tipped Geijo's shot over and Forestieri fired wide when he should have scored before Watford got their noses back in front in the 68th minute.
Geijo ran on to a clever chip from Forestieri and clipped the ball past Hamer.
But the lead lasted less than two minutes as Ricardo Fuller jinked his way down the right and crossed for Kermorgant to tuck away his second of the game.
And former Watford loanee Jackson completed the turnaround when he headed in Dale Stephens' corner.
Substitute Vydra had an equaliser ruled out for offside and Hamer saved from Foriestieri as Charlton held out to take the points back to south London.