Christian Benteke looked to open the scoring early on when he unleashed a half-volley from the edge of the box, but his finish went just wide of the post.
Leicester made the most of the miss, opening the scoring down the other end a few moments later when Brad Guzan parried a strike from Riyad Mahrez into the path of Leonardo Ulloa, leaving the striker with a simple finish.
The Foxes appealed for a penalty shortly after when Guzan came out to meet Jamie Vardy, but the Villa keeper appeared to win the ball.
There was a blow for Paul Lambert's men just before half time when Westwood, who has not missed a Premier League match in almost a year, had to be stretchered off following a collision with Vardy which left him with a cut knee.
Leicester's goalscorer was also unable to return after the break, having bruised his calf late in the first half.
Villa made a bright start to the second half, as Benteke put the visitors under pressure by finding Tom Cleverley in the box, but the on-loan midfielder could not find the target.
The hosts continued to look the more likely as Gabriel Agbonlahor and Benteke both had shots, but the former was denied by Schmeichel before the Belgian chipped his finish wide.
It looked like Leicester were starting to find their way back into the match as the final 20 minutes approached, but Alan Hutton came forward, collecting the ball from Benteke and pausing briefly before rifling the ball past Guzan for his first Villa goal.
Benteke could have finished it a few minutes later when he had a header from a few yards out, but Schmeichel turned his effort behind for a corner before denying the Belgian again moments later.
Leicester's hopes of a late equaliser were dealt a blow when Paul Konchesky was sent off for a clash with Hutton, which also saw the Scot booked for reacting.
Despite finishing the match a man short, Leicester continued to pile forward late on, but were unable to level the scores in the final moments.
The result lifts Villa up to 11th in the table, while Leicester remain bottom.