Chelsea lost ground on Premiership leaders Arsenal as Aston Villa stepped up their push for a Uefa Cup place.
Hernan Crespo gave a revamped Chelsea side an early lead after Adrian Mutu headed against the post.
Darius Vassell equalised from the spot seven minutes before half-time after Mario Melchiot fouled Gareth Barry.
Thomas Hitzlsperger's long-range drive put Villa ahead after 47 minutes and Lee Hendrie quickly added a third, while Crespo's second was academic.
The defeat leaves Chelsea seven points behind the Gunners with only six games left.
Chelsea manager Claudio Ranieri made eight changes from the team that drew with Middlesbrough at Stamford Bridge.
Only John Terry, Frank Lampard and Marco Ambrosio remained from the starting line-up, but the revamped team started smoothly and took the lead after only 10 minutes.
Wayne Bridge delivered a dangerous cross which Mutu headed against an upright, and Crespo reacted quicker than a static Villa defence to score easily.
And the Argentine almost doubled Chelsea's advantage two minutes later when he glanced Geremi's cross narrowly wide.
Villa were slugglish early on, but Chelsea were fortunate not to concede an equaliser when Robert Huth deflected Thomas Hitzlsperger's corner towards goal, only for the ball to strike Olof Mellberg and bounce to safety.
10 mins: Hernan Crespo puts Chelsea ahead
37 mins: Darius Vassell equalises for Villa from the spot
47 mins: Thomas Hitzlsperger fires Villa ahead
51 mins: Lee Hendrie increases Villa's lead
90 mins: Crespo scores his second for Chelsea
Chelsea had lost their early momentum, and they conceded a needless penalty to allow Villa to equalise eight minutes before the interval.
Melchiot flattened Barry in the area under no serious threat, leaving referee Jeff Winter no alternative but to award the spot-kick.
Vassell stepped up and fired straight down the middle to beat Marco Ambrosio.
Villa's confidence was surging and they should have been ahead seconds after the re-start.
Ambrosio saved well after Vassell raced clear, and when it seemed certain Peter Crouch would slide the rebound into an open goal the giant striker sliced hopelessly wide.
It was a brief reprieve as Hitzlsperger put Villa ahead in trademark style after 47 minutes.
He picked up Vassell's pass and flashed a low left-foot drive past Ambrosio from 25 yards.
And Villa were two goals ahead four minutes later as Hendrie asdded a third.
Jlloyd Samuel's long throw was flicked on by Crouch, for Hendrie to turn and score from eight yards.
It was Hendrie's last contribution as he was swiftly substituted by Peter Whittingham.
Crespo showed his quality by curling in a second in injury-time, but it was no consolation to disappointing Chelsea.
Aston Villa: Sorensen, De la Cruz, Mellberg, Johnsen, Samuel, Hendrie (Whittingham 55), McCann, Hitzlsperger, Barry, Vassell (Dublin 88), Crouch (Luke Moore 82).
Subs not used: Postma, Ridgewell.
Chelsea: Ambrosio, Melchiot (Gallas 61), Terry, Huth, Bridge, Parker, Lampard, Geremi, Duff (Gronkjaer 71), Mutu (Cole 71), Crespo.
Subs not used: Gudjohnsen, Sullivan.
Referee: J Winter (Cleveland).