Albion appeared to have strengthened their own survival hopes, while denting those of Leicester, when Darren Fletcher’s eighth-minute strike and Craig Gardner’s deflected volley had given them a half-time lead despite David Nugent’s equaliser on 26 minutes.
Robert Huth’s 80th-minute header levelled things up for the visitors who dominated the second half, but Vardy out-muscled Gareth McAuley, ran half the length of the pitch and fired past Boaz Myhill as Leicester claimed back-to-back victories in the league for the first time since September.
Albion wore a commemorative replica kit from the 1968 FA Cup Final in memory of former striker Jeff Astle and in aid of the Jeff Astle Foundation, a foundation set up to help ex-footballers with brain disease.
Having been led onto the field by members of Astle’s family, Albion raced into an early lead as Fletcher’s near-post header was deemed to have crossed the line by goal-line technology, despite Esteban Cambiasso’s desperate clearance.
Fletcher was the lynchpin in the opening exchanges as he controlled the tempo and pace of the game for an Albion side clearly intent on bouncing back from last weekend’s 4-1 defeat to Queens Park Rangers.
However, they were stung as Leicester rallied and equalised against the run of play as Nugent rounded off a direct move to collect Leonardo Ulloa’s flick and guide the ball past Myhill.
It was then the visitors’ turn to have the momentum yet fail to capitalise on it as Albion went in to the lead six minutes later. Chris Brunt’s cross caused chaos among the Leicester defence, before the ball dropped to Gardner to volley home with the help of a nick off Wes Morgan.
Leicester then wasted their best chance of the half as Ulloa inexcusably fired Nugent’s neat flick over the bar from six yards.
Nigel Pearson’s brought on Marcin Wasilewski for Ritchie de Laet at the interval as the Foxes opted for a 3-5-2 formation, and it paid off as they controlled large swathes of the second period.
It looked as though it would be yet another fruitless yet determined display from Leicester as they struggled to create clear-cut openings on the Albion goal.
Saido Berahino selfishly opted to shoot when team-mates were better positioned in Albion’s notable chance of the half and they were punished as Leicester left it late to snatch the points.
Nugent’s floated ball across the face of goal was headed goalwards by Huth and helped over the line by Craig Dawson, who made a disappointing attempt at a clearance.
And, when the game appeared to be destined for a draw, Vardy won a personal battle with McAuley, before producing a stunning individual winner.
Despite victory, Leicester remain bottom, but move to within three points of safety, while Albion stay 14th on 33 points.
West Brom: Myhill (8), Dawson (6), McAuley (6), Lescott (7), Brunt (7), Gardner (7), Fletcher (8), Yacob (7), Morrison (6), Berahino (6), Ideye (6).
Used subs: Olsson (5), Anichebe (5), Sessegnon (4).
Leicester City: Schmeichel (7), de Laet (6), Huth (7), Morgan (8), Schlupp (8), Albrighton (6), James (6), Cambiasso (7), Vardy (9), Nugent (7), Ulloa (7).
Used subs: King (6), Mahrez (6), Wasilewski (6).
Man of the Match: Jamie Vardy