Substitute Vokes appeared to handle the ball as he controlled Michael Keane's header from Scott Arfield's corner before scoring from close range three minutes from time to give last season's Championship winners a deserved victory over the reigning Premier League champions.
It was Vokes' third goal in four games in all competitions and it secured the Clarets' first victory over Leicester in 11 attempts, condemning the Foxes to their third successive defeat in the Premier League – their worst sequence under Claudio Ranieri.
Burnley, who announced the club-record signing of Robbie Brady from Norwich City at half-time, squandered chances to score in either half, with Ashley Barnes and Joey Barton both going close to putting them in front.
Referee Mike Dean incited the fury of the home crowd when he waved away Burnley's claims for a penalty, and he was at the centre of attention again at the end as Vokes' goal ensured Leicester were denied any reward for a battling performance as their wait for an away league win this season goes on.
11 - Sam Vokes' 87th minute goal ended a run of 11 Premier League games without finding the net. Timely.— OptaJoe (@OptaJoe) January 31, 2017
Marc Albrighton and Demarai Gray probed as the visitors made a bright start and Tom Heaton had to stretch to punch Christian Fuchs' dangerous cross clear of the head of the onrushing Jamie Vardy.
Andre Gray's flicked header created a good chance for Burnley after 10 minutes, but Barnes lashed the ball wide and the striker could not get his shot away when Keane's glancing header put him through a second time.
Striker Andre Gray slammed a shot into the side-netting as Burnley ramped up the pressure, and when Leicester did counter Vardy spurned the chance to hit the target, slicing wide after pouncing on a loose ball.
Burnley had claims for a penalty waved away when Danny Drinkwater appeared to push Keane in the box, and Barton fired narrowly over the crossbar for the Clarets shortly before half-time.
Barton went close again early in the second half, flashing a shot wide from 25 yards, and Kasper Schmeichel had to be alert to save low to his left when Andre Gray stormed into the box and drilled a shot towards goal.
Vardy appealed for a penalty after he went to ground when clean through on goal after tangling with Heaton, but his claims were ignored and Burnley resumed their pressure.
The shots rained in on Schmeichel's goal, but Leicester defended in determined and at times desperate style to stay in the game, and they breathed a sigh of relief after Ben Mee headed just over with 20 minutes left on the clock.
Andre Gray should have wrapped the match up on 77 minutes when he made an angled run into the area, but shot straight at Schmeichel's body when there were team-mates screaming out for a cross.
But the last word went to Vokes after Keane connected with Arfield's corner and the Wales striker bundled the ball into the net.