Watford were made to work for a 3-2 victory over Coventry at Vicarage Road, in a game that sprung into life in the second half.
Ismaila Sarr struck a 83rd-minute penalty to secure the win, after William Troost-Ekong had equalised following a Coventry comeback.
After Andre Gray put the Hornets ahead, the Sky Blues turned the game around through two goals in three minutes from Gustavo Hamer and Tyler Walker but they could not hold on.
The home side made three changes from the side that defeated Stoke in the week, with Troost-Ekong, James Garner and Gray coming in.
Coventry manager Mark Robins gave Walker his first league start.
Watford almost went in front after seven minutes, when Tom Cleverley failed to control his connection after a low cross by Sarr was delivered across the face of the goal.
After a slow start, Coventry started to find their way into the contest, putting together some passing moves.
Indeed, they maybe should have taken the lead in the 23rd minute when, after a good cross from the left by Ryan Giles, Maxime Biamou placed his header the wrong side of the post from six yards.
Chances remained limited throughout the rest of the first half, although Watford had more of the play on balance.
The first chance of the second half fell to Coventry, just two minutes after the restart. Hamer found the onrushing Callum O’Hare making his way into the area. His fierce drive from 10 yards was diverted over the bar by goalkeeper Ben Foster.
However, Watford took the lead after 54 minutes. Ken Sema powered his way to the byline and cut the ball back for Gray, making his first league start in almost a year, and the striker was in the right place to scramble home from close range.
The game turned on its head in an amazing three-minute spell that saw three goals.
Coventry equalised in the 63rd minute when Hamer was first to a bounce from outside the area and his header had enough power to leave Foster stranded and loop into the net.
A minute later, the goalscorer found Biamou, who laid the ball off to Walker to drill home past the outstretched goalkeeper.
Watford equalised after 66 minutes when Troost-Ekong headed home a corner by Garner.
Gray made way for Troy Deeney, who was making his 400th appearance in a Watford shirt.
The home side took the lead again seven minutes from time from the penalty spot. O’Hare handled a shot by Sarr, and the Senegalese forward sent goalkeeper Marko Marosi the wrong way
With four minutes of added time announced, Watford were able to see out the game and keep their unbeaten record at Vicarage Road this season intact.