Bukayo Saka had the ball in the net after just eight minutes but the goal was disallowed after VAR showed he had been offside.
Alexandre Lacazette was awarded the penalty after a heavy challenge by Danny Rose in the box. Pierre-Emerick Aubameyang stepped up to take the spot kick but Ben Foster saved it which makes it two penalties out of two missed for the Gabon striker this season.
Arsenal finally got their opener on 56 minutes when Ben White was tackled on the edge of the box but the ball spilled to Smith Rowe. The Arsenal youngster powered a shot that slid under Foster and into the net.
The goal is his third for Arsenal in his last three matches.
"It was a difficult game for us today. Watford are a strong team. Happy we got the three points," Smith Rowe said after the game.
"I am happy [to score]. I have been practicing during training. It is really special and doing it at home and in front of our fans is even better.
"We have been working really hard, really important we got three points today.
"I think we always believed in ourselves and each other. It was just about coming together as a team and we are such a family."
Substitute Martin Odegaard appeared to have doubled Arsenal's lead on 74 minutes but a slight touch off Aubameyang -- who was offside -- en route to the goal ruled it out.
Watford were reduced to 10 men on 88 minutes when Juraj Kucka was sent off for a second yellow card.