Darren Ambrose claimed a deserved point for Charlton in treacherous conditions at Vicarage Road.
Lloyd Doyley holds off Charlton's Luke Varney
Nathan Ellington scored his first goal for the club since his summer move when he coolly steered home from 12 yards.
But Ambrose made up for an earlier miss when he drilled a long-range effort past Richard Lee, who should have done better and kept the effort out.
Al Bangura came on for his first appearance for the Hornets since August after being granted his work permit.
Watford manager Aidy Boothroyd on goalkeeper Richard Lee's error:
"It was a mistake, but Richard has been our most consistent performer.
"We have still gone up in the table and that might be the point that gets us automatic promotion - the way it is at the minute it is going to go right to the wire."
Charlton boss Alan Pardew:
"To concede a goal the way we did was massively disappointing and it was a real test after we played for 120 minutes at West Brom in midweek.
"We had a fair amount of control for most of the game.
"So to come back and score was nothing more than we deserved but I would take
a draw here any day of the week."
Watford: Lee, Doyley, DeMerit, Davenport (Mariappa 45), Stewart, Smith, Williamson, Francis, McAnuff, Darius Henderson, Ellington (Bangura 80), Mariappa (O'Toole 70).
Subs Not Used: Poom, Priskin.
Booked: Francis, McAnuff.
Goals: Ellington 59. Charlton: Weaver, Moutaouakil, McCarthy, Bougherra (Fortune 90), Youga, Sam (Dickson 81), Holland, Zhi, Ambrose, Varney, Iwelumo (Gray 68).
Subs Not Used: Randolph, Semedo.
Booked: Ambrose, Moutaouakil.
Goals: Ambrose 78.
Ref: Andre Marriner (W Midlands).