Ashley Young's goal ended Reading's faint hopes of earning a play-off spot.
Reading needed to win and hope other results went their way but Young's shot through a crowded penalty area just before half-time won it for Watford.
Adie Williams squandered the Royals' best chance, shooting wastefully over the bar with the score at 0-0.
Bruce Dyer and Heidar Helguson both had headers saved by away keeper Jamie Ashdown while Paul Brooker and Dave Kitson came close for the visitors.
Substitute Young was given his chance after an early injury to Lee Cook, who was forced off after 19 minutes.
With other results going against them, Reading boss Steve Coppell threw on substitutes Lloyd Owusu and Dean Morgan to join earlier replacement Brooker but they could not break through.
As a result, these sides will meet each other again in Division One next season.
Watford: Chamberlain, Ardley, Cox, Doyley, Mayo, Devlin, Hyde,
Mahon (Vernazza 90), Cook (Young 19), Helguson (Fitzgerald 74),
Dyer.
Subs Not Used: Pidgeley, Bouazza.
Booked: Helguson, Fitzgerald.
Reading: Ashdown, Murty, Williams, Newman, Hughes,
Savage (Morgan 56), Harper, Sidwell, Salako (Brooker 45),
Goater (Owusu 56), Kitson.
Subs Not Used: Hahnemann, Gordon.
Attendance: 17,979.
Referee: D Crick (Surrey).