Fernando Forestieri and Sean Murray gave Watford a 2-0 lead before Matty James netted for the Foxes in the 43rd minute.
But it looked as though City were on their way to a first Championship defeat since December 7 until Danny Drinkwater struck in the fourth minute of stoppage time.
Leicester named the side that earned their ninth win in a row at Bournemouth while Watford made two changes from the team that beat Brighton. Murray and Marco Faraoni replaced Alex Merkel and Fitz Hall, who were relegated to the bench.
From the outset, it became clear the Hornets had set up to nullify Leicester's attacking threat, using three centre-backs and packing the midfield with five players.
The Foxes struggled to come to terms with the system and could have been a goal down in the fourth minute. Murray swung over a free-kick and Faraoni put a header wide at the far post.
But in the ninth minute Leicester were punished for allowing Watford far too much space. Troy Deeney was unmarked out on the left and allowed to collect a loose ball and blast a shot towards goal. It looked to be going wide until Forestieri dived forward to send a header into the net with City vainly appealing for offside.
Watford continued to look the better side in the tricky windy conditions and the Foxes were limited to very few chances. Jamie Vardy flicked a shot just wide from Drinkwater's low cross and then headed over from a Paul Konchesky centre.
Watford hit back with the dangerous Deeney pouncing on a Wes Morgan mistake only to blaze his shot high and wide. Then City almost equalised in the 33rd minute when a corner from James was blown towards the top corner of the net by the wind, but Manuel Almunia pulled off a great save to keep it out.
Kasper Schmeichel had to be just as acrobatic at the other end in the 37th minute to save a volley from Gabriele Angella, but four minutes later he was beaten for a second time as Murray found space 25 yards out and rifled a low shot into the bottom corner.
It was a real stunner for City but they showed their resilience to snatch a goal back in the 43rd minute. Ritchie De Laet broke free down the right and James met his low cross on the volley to score his first goal of the season.
The second half began at a fast and furious pace as the Foxes went flat out for an equaliser. But the massed ranks of Watford's defence held firm, clearing well when Lloyd Dyer's pace and accurate centre posed problems.
Dyer threatened again in the 71st minute with another fine cross but David Nugent headed wide when he should at least have hit the target.
In the 74th minute Leicester made their first substitution, sending on veteran Kevin Phillips in place of Vardy.
But as the game went into five minutes of stoppage time it looked all over for Leicester until Drinkwater scored a dramatic equaliser with a stunning 20-yard volley.