Watford ended a run of four straight defeats in all competitions but were denied victory by Steve Davies's late equaliser for Bristol City.
The Hornets took the lead just before the hour mark when James Wilson put the ball into his own net.
Marvin Elliott headed the Robins level before Matej Vydra struck from 12 yards to restore Watford's lead.
But after 83 minutes Davies scrambled the ball home from close range to score his first City goal and rescue a point.
Watford went into the game having found the net just twice in their previous three home fixtures in the Championship, but their early attempts to improve upon that tally were thwarted by Robins' keeper Tom Heaton.
The former Manchester United keeper had joined the Hornets in July but his deal was scrapped just days later after a takeover at Vicarage Road by the Pozzo family.
Bristol City signed Steve Davies from Derby in August - and his goal at Watford is his first for the club
Heaton, who had been released by Cardiff at the end of last season, denied Nathaniel Chalobah, Mark Yeates and Sean Murray during a busy opening 45 minutes.
Watford keeper Manuel Almunia also made an excellent save to stop a 20-yard effort from Martyn Woolford as the game remained goalless at the break.
Woolford struck the post with a left-footed strike shortly after the restart, while Troy Deeney, back in the Watford fold after serving a prison term, came on as a substitute for Fernando Forestieri after 55 minutes.
Deeney immediately forced a save from Heaton, but the Robins' keeper could not stop Wilson from putting the ball into his own net.
City midfielder Elliott met Joe Bryan's cross to head in from six yards, scoring the visitors' 1000th goal in the second tier of English football.
Watford continued to press and Czech striker Vydra got on the end of Daniel Pudil's cross but Davies ended their hopes of collecting three points.
Watford manager Gianfranco Zola:
"If I focus myself only on that [twice losing the lead], yes, it's going to be very frustrating, but there's also a lot of good positive things I can take from this game.
"We created a lot, scored two goals. Yes, towards the end it was shaky, certainly not very healthy for the manager's heart, but I think a lot is down to the fact that many players are recovering from injuries so towards the end we got tired a little bit.
"But it's early days, we will improve that and once we do that it is going to be a very good team."
Bristol City assistant manager Tony Docherty:
"I think we were slightly disappointing in the first half in terms of our retention of the ball and possession and creating chances, but we certainly picked it up in the second half.
"We showed great character to come back from a goal down on two occasions and eventually at the end we thought we could go and win it.
"So there's a little feeling of disappointment we couldn't win it but I think to take four points out of six at two tough venues, Peterborough and Watford, is a good return."
Full Time The referee blows his whistle to end the game.
The ball is swung over by Albert Adomah.
Sean Murray handles the ball and concedes a free kick. Direct free kick taken by Stephen Pearson.
Shot from inside the area by Neil Kilkenny clears the bar.
Free kick taken by Stephen Pearson.
90:00 +0:25 Booking
Booking The referee cautions Fitz Hall for unsporting behaviour.
Fitz Hall concedes a free kick for a foul on Albert Adomah.
Troy Deeney produces a header from deep inside the area and hits the post. Fitz Hall takes a shot. Save made by Tom Heaton. Inswinging corner taken right-footed by Mark Yeates, Troy Deeney challenges Tom Heaton unfairly and gives away a free kick. Direct free kick taken by Tom Heaton.
Inswinging corner taken by Daniel Pudil from the right by-line.
Liam Fontaine concedes a free kick for a foul on Troy Deeney. Almen Abdi restarts play with the free kick.
Free kick taken by Tom Heaton.
Substitution Sam Baldock leaves the field to be replaced by Jody Morris.
The referee blows for offside.
82:46 Goal scored
Goal - Steven Davies - Watford 2 - 2 Bristol C Steven Davies scores a goal from inside the six-yard box low into the middle of the goal. Watford 2-2 Bristol City.
Corner taken by Stephen Pearson.
The referee blows for offside. Tom Heaton restarts play with the free kick.
The ball is sent over by Mark Yeates.
The offside flag is raised against Matej Vydra. Indirect free kick taken by Tom Heaton.
Substitution Lloyd Doyley comes on in place of Marco Cassetti.
Substitution Steven Davies joins the action as a substitute, replacing Marvin Elliott.
Shot by Sean Murray from just outside the area goes over the net.
Outswinging corner taken right-footed by Albert Adomah, Sean Murray makes a clearance.
Free kick awarded for an unfair challenge on Ryan Taylor by Nathaniel Chalobah. Albert Adomah takes the free kick.
Assist on the goal came from Daniel Pudil.
71:55 Goal scored
Goal - Matej Vydra - Watford 2 - 1 Bristol C Goal scored by Matej Vydra from inside the penalty box to the bottom right corner of the goal. Watford 2-1 Bristol City.
Daniel Pudil sends in a cross,
Unfair challenge on Joe Bryan by Marco Cassetti results in a free kick. Albert Adomah restarts play with the free kick.
Substitution Fitz Hall on for Piccoli Neuton.
Troy Deeney concedes a free kick for a foul on Marvin Elliott. James Wilson takes the direct free kick.
Ryan Taylor takes a shot. Piccoli Neuton gets a block in. Shot from inside the six-yard box by Albert Adomah goes wide right of the goal.
The ball is sent over by Troy Deeney, Joe Bryan makes a clearance.
Joe Bryan delivers the ball.
The assist for the goal came from Joe Bryan.
62:24 Goal scored
Goal - Marvin Elliott - Watford 1 - 1 Bristol C Marvin Elliott scores a headed goal from inside the six-yard box. Watford 1-1 Bristol City.
The ball is delivered by Albert Adomah, Sean Murray makes a clearance.
Substitution Martyn Woolford leaves the field to be replaced by Neil Kilkenny.
58:01 Goal scored
Goal - James Wilson - Watford 1 - 0 Bristol C James Wilson concedes an unfortunate own goal. Watford 1-0 Bristol City.
A cross is delivered by Marco Cassetti.
Shot from just outside the box by Troy Deeney misses to the right of the target.
Troy Deeney takes a shot. Save made by Tom Heaton. Close range effort by Matej Vydra goes wide of the right-hand upright.
Substitution Troy Deeney replaces Fernando Forestieri.
The ball is sent over by Fernando Forestieri, blocked by Joe Bryan. Inswinging corner taken by Fernando Forestieri, Marco Cassetti takes a shot. Albert Adomah gets a block in. Corner from right by-line taken by Fernando Forestieri.
Albert Adomah produces a cross. Joe Bryan crosses the ball. Handball by Marco Cassetti. Albert Adomah takes the free kick.
Piccoli Neuton challenges Stephen Pearson unfairly and gives away a free kick. Marvin Elliott takes the free kick.
The ball is crossed by Sean Murray, save made by Tom Heaton.
Fernando Forestieri has an effort at goal from just outside the box which goes wide of the left-hand post.
Shot by Martyn Woolford from deep inside the area hits the post.
Richard Foster produces a cross, clearance by Sean Murray.
The game restarts for the second half.
45:00 +1:28 Half time
Half Time The referee blows for half time.
Fernando Forestieri has shot on goal from just outside the penalty box which goes wide of the right-hand upright.
Almen Abdi takes a shot. Save by Tom Heaton.
Nathaniel Chalobah concedes a free kick for a foul on Martyn Woolford. Free kick taken by Liam Fontaine.
Sean Murray takes the free kick.
Booking Marvin Elliott shown a yellow card.
Foul by Marvin Elliott on Fernando Forestieri, free kick awarded.
Centre by Mark Yeates, clearance by Liam Fontaine.
Sean Murray takes a shot. Stephen Pearson gets a block in. Inswinging corner taken right-footed by Fernando Forestieri played to the near post, Liam Fontaine makes a clearance. The referee blows for offside against Piccoli Neuton. Tom Heaton takes the indirect free kick.
Fernando Forestieri takes a shot. Save by Tom Heaton.
The ball is swung over by Sean Murray, Stephen Pearson makes a clearance. Outswinging corner taken right-footed by Fernando Forestieri, Liam Fontaine manages to make a clearance.
Martyn Woolford takes a shot. Save made by Manuel Almunia. Shot from just outside the box by Joe Bryan misses to the right of the target.
Foul by Ryan Taylor on Piccoli Neuton, free kick awarded. Piccoli Neuton takes the direct free kick.
Sean Murray takes a shot. Save by Tom Heaton.
Piccoli Neuton gives away a free kick for an unfair challenge on Ryan Taylor. Free kick taken by Stephen Pearson.
Piccoli Neuton takes a shot from long distance which goes wide right of the goal.
A cross is delivered by Albert Adomah.
Sean Murray takes a shot. Save by Tom Heaton.
The ball is sent over by Albert Adomah, save made by Manuel Almunia.
Albert Adomah produces a cross, clearance by Piccoli Neuton. Albert Adomah takes a outswinging corner to the near post, Nyron Nosworthy makes a clearance.
Nathaniel Chalobah takes a shot. Save by Tom Heaton.
Stephen Pearson takes a shot. Blocked by Nyron Nosworthy. Mark Yeates takes a shot. Save by Tom Heaton.
Unfair challenge on Daniel Pudil by Stephen Pearson results in a free kick. Fernando Forestieri has an effort direct from the free kick, Tom Heaton makes a save.
Almen Abdi produces a strike on goal direct from the free kick.
Booking The referee shows James Wilson a yellow card for unsporting behaviour.
James Wilson concedes a free kick for a foul on Matej Vydra.
Joe Bryan delivers the ball, Daniel Pudil manages to make a clearance. Ryan Taylor is caught offside. Free kick taken by Manuel Almunia.
Nathaniel Chalobah takes a shot. Blocked by Marvin Elliott. Nathaniel Chalobah takes a shot. Save made by Tom Heaton.
Piccoli Neuton concedes a free kick for a foul on Ryan Taylor. Free kick taken by Stephen Pearson. Unfair challenge on Nyron Nosworthy by Liam Fontaine results in a free kick. Nyron Nosworthy takes the direct free kick.
Foul by Daniel Pudil on Marvin Elliott, free kick awarded. A cross is delivered by Albert Adomah, Marvin Elliott has a headed effort at goal from close in which goes wide left of the target.
Albert Adomah produces a cross, blocked by Mark Yeates.
Sean Murray sends in a cross, save by Tom Heaton.
The ball is crossed by Mark Yeates, James Wilson makes a clearance. Corner taken by Mark Yeates.
Joe Bryan gives away a free kick for an unfair challenge on Marco Cassetti. Direct free kick taken by Nyron Nosworthy.
The ball is delivered by Mark Yeates, clearance made by Liam Fontaine.
Sean Murray delivers the ball.
Nathaniel Chalobah fouled by Stephen Pearson, the ref awards a free kick. Nathaniel Chalobah takes the free kick.
The game gets underway.
Live text and data provided by The Press Association
This page is best viewed in an up-to-date web browser with style sheets (CSS) enabled. While you will be able to view the content of this page in your current browser, you will not be able to get the full visual experience. Please consider upgrading your browser software or enabling style sheets (CSS) if you are able to do so.