Manchester City survived a major FA Cup scare to keep their hopes of a quadruple alive, but they needed a heart-breaking error by Watford goalkeeper Jonathan Bond to seal victory.
The Etihad Stadium was left stunned at half-time after goals from Fernando Forestieri and Troy Deeney gave the Championship side a two-goal advantage.
However, Sergio Aguero struck twice in the second period as a much-improved City display drew them level at 2-2.
Then, with three minutes of the game remaining, a speculative long-range effort from Aleksandar Kolarov squeezed between the legs of Bond and over the line.
It was a cruel way for Watford to lose, even though Aguero completed his hat-trick in injury-time to gloss over the woeful first period for the home side.
Watford made a bright start at the Etihad Stadium, and Forestieri fired an early free-kick into a City wall in the opening stages.
However, the Hornets stunned the home crowd in the 21st minute when Forestieri gave the visitors the lead.
Deeney played the ball into area, and the Watford striker sent a right-footed strike beyond Costel Pantilimon in the City goal.
The home team and supporters were left stunned, but there was worse to come for City.
Great play by Ikechi Anya allowed him to find Deeney inside the City box in the 30th minute, and he beat Pantilimon to send shockwaves across football with Watford's second of the afternoon.
This was a Manchester City team that included Sergio, Aguero, Yaya Toure and Edin Dzeko, so nobody could accuse Manuel Pellegrini of not taking the game seriously.
City knew they needed something swiftly and stepped up their approach to the game, but passes were still drifting astray and Watford were looking comfortable.
Three minutes before the interval, a Lopes free-kick threatened the Watford goal, but 'keeper Jonathan Bond was able to take the ball ahead of Joleon Lescott.
But Watford could have added a third goal in the closing stages of the half when Daniel Pudil struck the post with his left-footed shot.
Watford went into the break with a deserved two-goal lead as the home side and Pellegrini were forced to regroup.
Unsurprisingly, Pellegrini made changes at half-time with Vincent Kompany coming on for Jack Rodwell, while Pablo Zabaleta replaced Micah Richards.
The changes almost had an immediate effect with Kompany flicking on a corner into the six-yard area, but nobody was there to capitalise.
This was a much-improved City performance and Dzeko headed just wide of the target in the 52nd minute.
Pellegrini introduced Stevan Jovetic for Marcos Lopes as City continued to chase the game.
It seemed only a matter of time before City would claw their way back into the game, and Aguero did just that on the hour mark.
Kompany led by example in the 66th minute as he progressed forward before laying the ball off to Dzeko, but the striker failed to connect properly and his shot was comfortably held by Bond.
Toure than saw his goal-bound drive cannon off a Watford defender and away from danger for the visitors.
Dzeko and Jovetic then worked an opportunity, but the Bosnia international's pass was too strong for his team-mate and Bond claimed the ball.
In the 79th minute, though, City pulled level courtesy of Aguero.
After a thrusting run from Jesus Navas, Aguero made his way into the area before sending a beautiful curling left-footed shot around Bond and into the top-left corner of the net.
City then took the lead with just four minutes remaining thanks to a terrible error by Bond.
Kolarov struck with hope from almost 40 yards and the ball should have been collected with ease by the Watford goalkeeper.
However, the City defender's effort somehow squirmed between the legs of the unfortunate goalkeeper to give the home side a 3-2 lead.
In injury-time, Aguero added his third of the afternoon when he headed home a Navas cross to leave the Etihad Stadium breathing a collective sigh of relief.
Sergio Aguero: A-
Was as baffled as any other City team-mate in the first period, but perked up in the second 45 minutes after Pellegrini made changes.
However, a second-half hat-trick ensured City would maintain their hopes of an unprecedented quadruple.
Yaya Toure: B
Completely out of sorts in the first half, but found his footing after the interval to help City rescue the tie.
Fernando Forestieri: A
Watford man was quite simply outstanding. Fully deserved his goal and was a persistent thorn in City's side in the first period.
Only a second-half injury prevented him from causing further problems for the home side.
Manchester City manager Manuel Pellegrini praised his side's second-half display, as the club's official website MCFC.co.uk reported:
I was very worried at half-time because I talked with the players a lot before the match and said that in the FA Cup, teams that play in a lower division have a lot of motivation.
I didn’t underestimate Watford, I didn’t think it would be easy and I told the team this.
The players must not believe they have an easy game but I feel that they had a very good reaction in the second half.
We changed everything, we played with tempo, with pace. We continued playing in the same way we’ve played in this whole season at the Etihad.
This reaction was very important.
Manchester City continue their pursuit of the Premier League title when they take on Tottenham Hotspur at White Hart Lane on Wednesday, while Watford must lift themselves for the Championship game at Nottingham Forest on Thursday.