The hosts fell behind after just 12 minutes courtesy of Martyn Woolford's strike, but they were back on level terms nine minutes before half-time.
A clever short corner saw the ball find Keith Andrews on the edge of the area, who then clipped a brilliant pass in for Matej Vydra to finish from close range.
The momentum shifted in favour of the hosts from that point and they were soon ahead deep into first-half stoppage time when Daniel Tozser stepped up to curl home a free-kick.
Millwall remained in the game after the break, but the points were confirmed after 64 minutes when some good work down the left allowed Vydra to pull the ball back for Gianni Munari, who lashed a shot home from the edge of the box.
The result saw Watford overtake Wolves after Kenny Jackett's side played out an uninspiring 0-0 draw in the Midlands derby with Birmingham City.
A nervy game did not do much to set pulses racing at Molineux, but a clean sheet will be a welcome relief for new Birmingham boss Gary Rowett, who was appointed after the 8-0 humiliation at home to Bournemouth and faces a tough battle to turn things around at St Andrews.
The same could also be said of former Birmingham boss Lee Clark, who began life as Blackpool manager with a 2-0 defeat at home to Ipswich Town, while Neil Redfearn started his time in permanent charge of Leeds United with a 3-1 defeat to Cardiff City.
Elsewhere, Middlesbrough continued to demonstrate their promotion credentials with a comfortable 3-0 win at 10-man Rotherham United - who had Jordan Bowery sent off - while Derby County's own promotion bid suffered a setback as they fell to a late goal from substitute Stuart Dallas in a 2-1 defeat at Brentford.
Nottingham Forest stretched their winless league run to eight games with a 3-0 loss at Huddersfield Town while a thriller at the DW Stadium saw fans treated to six goals and two red cards in the game between Wigan Athletic and Fulham, who played out a pulsating 3-3 draw.
The hosts led through Adam Forshaw's early penalty but conceded goals to Lasse Vigen Christensen and then Brian Ruiz before half-time.
Roger Espinoza levelled nine minutes after the restart and after Ross McCormack had been red-carded for a second bookable offence, Wigan thought they had won it when substitute Shaun Maloney popped up to score with eight minutes left.
But Leon Barnett was shown a red card for a trip on ex-Wigan man Hugo Rodallega late on, before Ruiz kept his cool to rescue a point from the penalty spot.
At Ewood Park, Blackburn Rovers secured a 3-1 win over Reading, while Bournemouth followed up their League Cup heroics against West Brom by beating Brighton and Hove Albion 3-2.
Charlton and Sheffield Wednesday drew 1-1 in the day's other game.