Harry Redknapp’s side had hoped they could continue what has been a fine December to date, with plans for a new 40,000-seater stadium complemented by a three-match unbeaten run.
Such form propelled QPR top of the Sky Bet Championship, although Leicester joined them on 42 points after securing a 1-0 win at Loftus Road.
It was a result that had looked unlikely as City spent the majority of the first half on the back foot, with only last-ditch defending and fine goalkeeping from Kasper Schmeichel keeping them at bay.
QPR were made to pay for those missed opportunities four minutes before half-time, as David Nugent flicked on a long ball forward and Vardy struck home venomously from an acute angle.
The fact it was the Foxes’ first shot on target highlighted Rangers’ dominance, with their frustration growing as the match wore on.
Benoit Assou-Ekotto and Charlie Austin almost came to blows in first-half stoppage-time and Joey Barton was sent off as the game – and QPR’s 10-match unbeaten home run – came to an end.
Few could have predicted the result given how brightly the Rs began in wet and windy conditions.
Barton stung the palms of Schmeichel early on after the Leicester goalkeeper dealt with a far simpler Gary O’Neil effort, before a rather farcical delay to proceedings as a squirrel took to the field.
The players’ frustration grew as the rodent ran amok – although the fans seemed rather amused – and it almost five minutes for it to be ushered off the field.
Danny Drinkwater hooking a bundled Clint Hill header off the line when play resumed, before City again battened down the hatches.
After Schmeichel ran out to block off Austin, O’Neil’s effort from the rebound was headed off the line by Liam Moore before the City goalkeeper somehow clawed away Matt Phillips’ follow-up effort.
Ritchie de Laet was fortunate to see a header flash across his own goal from the resulting corner, before City took the lead against the run of play.
Nugent showed good strength to flick on a long Schmeichel ball, with Vardy continuing to fire a low, drive strike past Robert Green from an acute angle.
Phillips missed a chance to level in stoppage-time, which also saw team-mates Assou-Ekotto and Austin nearly come to blows.
Lloyd Dyer wasted a great chance to make matters worse for the hosts moments into the second half in which QPR created little.
Phillips had claims for a penalty against Moore rejected, while Anthony Knockaert and Nugent had efforts at the other end.
Recent signing Yossi Benayoun was brought on for his debut in place of Tom Carroll as QPR pushed for a leveller, although the visitors came close to another as a powerful Matty James strike took a slight deflection off Richard Dunne and rattled the crossbar.
Junior Hoilett saw penalty appeals waved away as QPR returned to the attack, although their task was made harder as Barton was shown a red card after collecting yellows in quick succession.
QPR kept attacking despite the 84th-minute sending off, but were unable to find a way past Schmeichel as City held out for victory.