Christian Benteke's third goal in two games failed to prevent Villa from defeat - but they left Stamford Bridge believing they should have had a point.
The Belgium international's fine shot in first-half stoppage time brought Villa level after Antonio Luna was unlucky to concede a sixth-minute own goal.
With the visitors growing in confidence as the second half unfolded, a draw looked a distinct possibility - until Branislav Ivanovic headed a 72nd-minute Chelsea winner just a few minutes after he might easily have been sent off.
And to rub salt in the wound, Villa were denied a penalty right at the end when John Terry clearly handled in the area.
Chelsea's opener had more than a touch of good fortune about it.
Although Oscar's fine pass opened up the Villa defence, Brad Guzan did well to palm away the Belgian's angled shot - only for the ball to rebound in off Luna.
It was harsh on the Spanish defender, who was simply unable to get out of the way as he ran back to cover the danger, although the goal was a fair reflection for the home side's early dominance.
Even so, nearly 19 minutes had elapsed before they threatened again, Oscar's shot flying over the bar.
And as Villa began to settle, the visitors carved out two chances in the space of three minutes.
Andi Weimann's stooping header deflected off Ashley Cole following a probing Luna cross from the left, and then Karim El Ahmadi accepted Benteke's pass to send a swerving 30-yarder wide of Petr Cech's left-hand post.
After a period of scrappy play, the home side put together a flowing move in the 35th minute, culminating with Oscar collecting Frank Lampard's pass and cutting inside from the right to send a low left-foot shot wide of Guzan's near post.
Ciaran Clark needed treatment for a head wound a few minutes later, the defender taking a blow from Demba Ba's boot as he tried to prevent the Chelsea new boy from shooting.
Clark was clearly in a lot of discomfort and as he was led around the back of the goal, Jores Okore went on as a 43rd-minute substitute.
But just as they had at Arsenal, Lambert's men overcame their adversity to draw level in the third minute of first-half stoppage time.
Gabby Agbonlahor's lightning pace took him away from his marker, and his low cross from the left was quickly controlled by Benteke before the striker drilled a left-foot shot past Cech and in off the near post.
The equaliser gave Villa a massive boost and they knocked the ball around with far more confidence at the start of the second half, as well as looking solid at the back.
They were nearly ahead just past the hour mark, Agbonlahor sending a curling right-foot shot from the edge of the area following some excellent work by Matt Lowton.
Then Weimann volleyed just wide from beyond the far post following Fabian Delph's fine pass and Benteke's deep cross from the left.
Villa supporters were furious when Ivanovic escaped with a caution following a crude challenge which left Benteke prostrate, and a few minutes later injury turned to insult when the Chelsea defender restored Chelsea's lead, powerfully heading home Lampard's free-kick from the right.
There was almost a second equaliser when Weimann's 86th-minute shot struck Cech's legs and rebounded to safety.
Then Villa were denied a penalty when the ball clearly struck Terry's hand as he contested a high cross with Agbonlahor.
It just wasn't Villa's night.
Chelsea: Cech; Ivanovic, Cahill, Terry, Cole; Ramires, Lampard; Oscar (van Ginkel 84), Mata (Schurre 65), Hazard; Ba (Lukaku 65). Unused subs: Schwarzer, Mikel, Schurrle, De Bryune, Azpilicueta.
Villa: Guzan; Lowton, Vlaar, Clark (Okore 43), Luna; El Ahmadi (Tonev 82), Westwood, Delph; Weimann, Benteke, Agbonlahor. Unused subs: Steer, Bennett, Bacuna, Helenius, Sylla.