The away side might have been ahead barely one minute into the match when Garner found himself unmarked in the area, but Millwall stopper David Forde pushed the ball to safety.
Garner again went close after nine minutes with an effort outside the box, but it drifted just wide. Millwall's best chance of the opening period came to Ryan Mason after 14 minutes, but his strike was thwarted by a smart save from Scott Loach.
It was the away side who took the lead in the match after 35 minutes and it came courtesy of a finish from Deeney. Alex Kacaniklic found the midfielder and Deeney made no mistake from inside the area.
A save from Loach thwarted Liam Trotter moments before the break to keep Watford's half-time lead intact.
Millwall began the second period as the better team but found themselves 2-0 down, against the run of play, after 59 minutes when Garner produced scored from inside the box.
The away side began to dominate proceedings in the latter stages on a difficult night for the home side.
Millwall will look to return to winning ways when they face West Ham on Saturday afternoon, while Watford host Barnsley.