Paul Konchesky's first-half goal earned Leicester City a crucial 1-0 victory over Aston Villa that moves Nigel Pearson's men to just two points off Premier League safety.
The full-back, who was sent off when these two sides met earlier this season, fired in a left-footed strike in first-half stoppage time to give City a deserved victory.
Both sides ended the game with 10 men after City midfielder Matty James was sent off for a dangerous tackle on Jores Okore in injury time while Ciaran Clark was shown a second yellow for his reaction to the challenge.
Pearson's side should have put the game to bed much earlier with David Nugent missing two glorious chances from close-range before rattling the bar from distance.
Villa keeper Brad Guzan kept his side in the game during the second half making a couple of fine saves to deny Marc Albrighton and James.
But City held on and, while they remain bottom of the table, sit two points off safety as just five points separate the bottom nine clubs.
Pearson made four changes from the side that picked up a 1-0 victory over Newcastle in the FA Cup, including Marc Albrighton who started against the club he joined at the age of eight.
City's new signing Andrej Kramaric, joined from HNK Rijeka for around £10m subject to a work permit, was watching the game from the stands.
The striker, who has scored 28 goals in 24 games this season, will surely have been thinking what might have been when he saw Nugent poke the ball wide, at full stretch, from just six yards out after Albrighton had played him in.
But if that miss had looked bad to the onlooking Croatian, it was nothing compared to the second. The impressive Anthony Knockaert dinked a ball to the back post, where Nugent somehow put his header wide from two yards out.
Villa, who looked toothless all game, did get the ball in the net when Christian Benteke rounded Ben Hamer and slotted home only to be denied by the tight offside flag.
That would prove to be Benteke's sole contribution as the Belgian struggled to have any sort of impact.
Nugent was denied once again, although this time he did not have himself to blame, when his excellent volley dipped over the sprawling Guzan but thundered off the crossbar. Leonardo Ulloa headed the rebound over from close range.
City thought they should have had a penalty when Dean Hammond was brought down by Alan Hutton inside the area but referee Michael Oliver waved away the protests.
But, eventually, the pressure tolled as Ulloa laid the ball out to the edge of the area to Konchesky, who rifled a first-time shot in off the post.
City continued to create chances after the break but, once again, failed to take them as Guzan pulled off a couple of spectacular saves.
The first denied James whose thunderous header, from Albrighton's cross, looked destined for the roof of the net.
It was then Albrighton, Guzan's former team-mate, who was left frustrated as the winger's right-footed striker was beaten away by the keeper.
If City thought they should have had a penalty in the first half, they were convinced of it when Ulloa was bundled over by Ashley Westwood. Again, Oliver said no.
Villa's best chance of levelling fell to former City loanee Tom Cleverley at the back post, as a corner creeped through, but he fired well over.
City substitute Tom Lawrence and Villa's Aly Cissokho both fired over from 10 yards as chances came and went.
With just seconds left of injury time, James went in two-footed on Okore, leaving the defender in agony on the floor.
James was then knocked to the ground by Clark, already on a booking, and the two grappled with each other in the centre circle prompting a mass scuffle between most of the players on the pitch.
The City midfielder was shown a straight red, Clark a second yellow, and the disagreements continued as the players headed down the tunnel with both dugouts engulfed in a mass tussle.
But City kept their composure to register their third win in four games in all competitions moving to just two points from safety, and keeping alive their hopes of pulling off their own Great Escape.
Teams:
Leicester City: (4-4-2) Hamer, Simpson, Morgan (c), Wasilewski, Konchesky, Knockaert, James, Hammond (King - 75'), Albrighton (Lawrence - 72'), Nugent, Ulloa (Vardy - 72')
Unused subs: Schwarzer, De Laet, Moore, Wood
Goals: Konchesky
Yellow cards: Hammond
Red cards: James
Aston Villa: (4-3-3) Guzan, Hutton, Okore, Clark, Cissokho (N'Zogbia - 89'), Cleverley, Cole (Weimann - 72'), Westwood, Sanchez (Richardson - 76'), Benteke, Agbonlahor (c)
Unused subs: Given, Bacuna, Lowton, Baker
Yellow cards: Okore, Clark
Red cards: Clark
Referee: Michael Oliver
Attendance: 31,728