Villa had taken a fortunate lead in the 28th minute when Matt Targett’s whipped cross from the left was met by Chelsea defender Reece James and his glancing header diverted the ball past Edouard Mendy and into the net for an own goal.
But Chelsea were level six minutes later with Jorginho converting a penalty after Callum Hudson-Odoi had been brought down by Matty Cash’s clumsy challenge in the 18-yard box.
Substitute Romelu Lukaku, who had missed three matches because of Covid-19, came on at the start of the second half and scored within 11 minutes, heading in from Hudson-Odoi’s cross.
Lukaku helped create Chelsea’s third as he won an injury-time penalty, which Jorginho converted for his second goal of the game.
The victory gives Chelsea their first win in three Premier League matches to leave them third, behind Liverpool on goal difference and six points adrift of leaders Manchester City.
Returning Lukaku makes the difference
Chelsea were top of the league after their 2-1 win against Watford on 1 December, before a run of only five points from four games saw them fall behind City in the title race, but this was a hard-earned and much needed victory.
Villa were without manager Steven Gerrard after he tested positive for Covid-19, with assistant Gary McAllister issuing the instructions from the touchline.
Chelsea have also been affected by Covid-19 and boss Thomas Tuchel had unsuccessfully asked to have their goalless draw at Wolves on 19 December postponed.
They were still without Kai Havertz and Timo Werner, although Lukaku was back in the squad with Hudson-Odoi returning to the starting line-up.
Mason Mount nearly gave them a fortunate lead when a mis-hit cross hit the top of the bar, before Villa gained a slice of luck themselves.
James diverted Targett’s cross into his own net, although Blues goalkeeper Mendy should have done better as he got his fingers to it, but could not keep the ball out.
Chelsea were soon level with Jorginho’s first penalty.
Tuchel made a change at half-time with Lukaku coming on for defender Trevoh Chalobah, although the German was then forced into another substitution six minutes later when Thiago Silva went off injured with Andreas Christensen replacing him.
After Lukaku’s goal, Mount should have stretched Chelsea’s lead further. He had taken the ball past goalkeeper Emiliano Martinez and with only defender Tyrone Mings guarding the net, the England midfielder fired wide.
Hudson-Odoi also had a late effort saved by Martinez, but those misses did not prove costly as Chelsea scored their third late on.
It came from a storming run from Lukaku, with the forward brought down by Ezri Konsa and Jorginho kept his cool to score his ninth goal of the season and his sixth in six games.