Vardy's dismissal for a lunge on Mame Biram Diouf turned the game in Stoke's favour, but Leonardo Ulloa cut the deficit to 2-1 in the 74th minute, before Daniel Amartey headed an equaliser for the Foxes two minutes from time.
Leicester had Kasper Schmeichel back between the sticks after the Danish goalkeeper recovered from a broken hand, while Danny Simpson returned from a one-game suspension to replace Luis Hernandez at the back.
As for the hosts, Bojan Krkic, Giannelli Imbula and Diouf were recalled, but Mark Hughes kept faith with his three centre-backs as the Potters looked to bounce back from a run of two games without a win.
Stoke had the first chance of the match in the fifth minute when Joe Allen danced into the Leicester box and delivered a low cross into Jonathan Walters, but the Republic of Ireland international could not find a route past Schmeichel, who got down to push the ball behind for a corner.
Leicester's first opportunity arrived in the eighth minute when Riyad Mahrez carried the ball down the right before attempting to beat Lee Grant at his near post, but Stoke's on-loan goalkeeper made a smart save, before pushing a looping Robert Huth header over the crossbar two minutes later.
Leicester again had a half-chance in the 24th minute when Islam Slimani muscled Ryan Shawcross off the ball before striking towards the bottom corner, but Grant was on hand to make another stop. Stoke then broke down the other end and had a chance when Imbula found Bojan, although the Spaniard's strike was blocked by Andy King.
The Premier League champions were incredibly reduced to 10 men in the 28th minute, however, when Vardy was handed a straight red card following a lunging challenge on Diouf, although the decision from the referee did seem harsh.
It got worse for Leicester 10 minutes later when Simpson was adjudged to have handled a Bojan cross inside the box and the Spaniard stepped up to send Stoke into a one-goal lead from the penalty spot.
The Potters then doubled their lead in the third minute of stoppage time at the end of the first period when Allen converted from close range after Imbula's powerful strike had hit the inside of the Leicester post and bounced towards the Welshman.
Leicester boss Claudio Ranieri decided against making any changes at the interval, but a number of his players were walking a fine line as a yellow for Huth early in the second period made it six Foxes players on bookings.
Stoke sensed blood as they continued to put the pressure on the away side, and Allen just missed the post with a powerful effort in the 51st minute as Leicester just looked to survive during a difficult spell for the Premier League champions.
Stoke, backed by a vocal home support, again came close to a third just before the hour when Walters met a cross from Diouf, but Schmeichel was on hand to make another impressive save.
Leicester, who have taken just two points on their travels this season, managed to find another gear from somewhere, however, and inspired by the impressive Mahrez, the Foxes put some serious pressure on the Stoke backline as the match approached its final 20 minutes.
Indeed, the visitors were back in the match in the 74th minute when substitute Ulloa headed a Mahrez cross just over the line, with the goal confirmed via the referee's watch.
Leicester continued to press late on as they looked to complete what seemed an unlikely comeback, and Ranieri's side incredibly equalised in the 88th minute when Amartey headed a Christian Fuchs cross into the back of the net.
Next up for Stoke, who have moved one spot to 11th in the Premier League table, is a trip to Liverpool on December 27, while Leicester will attempt to build on this result when they welcome Everton on Boxing Day.