Reading were punished by two moments of brilliance from Ismaïla Sarr as he struck a quickfire double to put the Royals’ Championship play-off chances in jeopardy.
Sarr found the net twice in two minutes with two stunning strikes but Reading created several brilliant openings but couldn’t find a finishing touch.
George Pușcaș had the best chance of the half when he struck the post from four yards out, while Yakou Méïté missed a one-on-one chance as the Royals were punished for their poor finishing.
But the Royals were left with nothing to show for their attacking work as they left Vicarage Road with defeat as their hopes to finish in the top-six took another hit.
Veljko Paunović opted to start with Pușcaș again ahead of Lucas João after the Romanian was the match-winner when the teams met earlier in the season at the Madejski Stadium.
Ismaïla Sarr looked to use his searing pace to catch out the Royals defence early as he made a run in behind Lewis Gibson, but Royals keeper Rafael Carbal rushes quickly off his line to collect the ball first.
Watford had the first chance of the match in the fifth minute. Sarr got down the wing and laid the ball off for João Pedro who flashed a shot across the face of goal from a narrow angle.
Sarr continued to looked dangerous in the opening stages and made Reading pay in the 12th minute when he scored the opener.
The Watford winger linked up with Kiko Femenia, got into the box, cut onto his left foot and curled a beauty beyond the reach of Rafael into the top corner.
Things went from bad to worse for Reading just two minutes later as Sarr produced another moment of magic to punish the Royals.
Gibson lost possession in the Reading half as Philip Zinckernagel transitioned the ball to Sarr who broke into the box wide on the right and hammered an unstoppable effort into the same top corner.
The signs looked ominous for Reading having gone two goals down early as Watford boast the best defensive record in the league and are yet to concede more than two goals in a league game all season.
However, the Royals responded well and created a plethora of chances which should have been enough to put them firmly back in the contest.
Michael Olise put in a dangerous cross to the back post as he searched for Meite, but Adam Masina covered well defensively to put the ball behind for a corner. The aftermath of that corner also produced a chance as Olise put in another inviting cross but Liam Moore couldn’t make contact on the volley.
Reading took control of the contest and dominated possession for much of the first-half. Pușcaș was alert to intercept and win the ball in the Hornets half and played the ball in for Josh Laurent flashes a shot wide of the far post.
The Royals should have clawed a goal back when Olise went on a superb run as he weaved his way past two tackles, laid the ball out wide to Méïté who cut the ball back to find Pușcaș just four yards out, but his shot cannoned back off the post.
Sarr thought he had sealed a first-half hat-trick when he volleyed into the net, but was denied by a tight offside call as he made his run a fraction of a second too early.
But the chances kept coming for the Royals as Ovie Ejaria found Laurent with a superb ball into the box but his shot at the near post was smothered by Hornets goalkeeper Daniel Bachmann.
Ejaria’s quick feet saw him ease past the Will Hughes and open up space for a shot that was blocked before the rebound fell to Gibson but he blasted an effort high and wide.
Paunović’s side created two more excellent opportunities in stoppage time of the first 45 as Meite breezed past his marker to get into the box but swiped at his shot on his right-foot which crashed into the side netting.
Andy Yiadom then determinedly drove his way into the box but had his shot at the near post saved as the Royals somehow went into the break without anything to show for their efforts.
Andy Rinomhota picked up a booking early in the second-half as he slid in to bring down Sarr as he looked to pounce on the counter-attack.
The Reading boss made a double switch just after an hour as Omar Richards and Lucas João replaced Gibson and Pușcaș.
Olise had a sight of goal with a 30-yard free-kick but his shot lacked the power to trouble Bachmann.
Richards had a shot with a half volley that flew over the target but the chances dried up for the Royals in the second-half as any hopes of a comeback looked to have passed them by.
Sarr had another chance to find his hat-trick late in the game as the ball dropped to him favourably in the box but a crowd of Reading bodies managed to deflect the ball wide.
The final chance fell to Sone Aluko after two chances were blocked but his powerful effort was hit straight at Bachmann who clutched the ball.
The defeat leaves Reading looking at a place outside the play-offs with just five games left if Bournemouth beat Coventry City tomorrow.
Reading are in action for a third successive Friday when they host Cardiff City next week at the Madejski (6pm kick-off).
Watford: Bachmann, Femenia, Troost-Ekong, Sierralta, Masina, Chalobah (c), Hughes, Zinckernagel, Sarr, João Pedro, Sema
Subs: Foster, Ngakia, Cathcart, Gosling, Lazaar, Gray, Success, Sanchez Hungbo
Reading: Rafael, Yiadom, Holmes, Moore, Gibson, Rinomhota, Laurent, Olise, Ejaria, Méïté, Pușcaș
Subs: Esteves, Richards, Baldock, Lucas João, Southwood, Aluko, Semedo, Tetek, Dorsett
Goals: Sarr 12′, 14′