Liverpool slumped to their second Premier League defeat in nine days to put their title credentials firmly on the line.
Aston Villa produced a defiant, organised display and deserved their first win at Anfield since 2001.
The result also ended Liverpool's 31-match unbeaten home league record stretching back to December 2007, when Manchester United were the last winners at Anfield.
But the spotlight will now be on Liverpool, who only lost twice in the league last season and still did not win the title.
The margin for error is now very fine. You rarely win the crown by losing more than five games in a season, and Liverpool's hopes could already have suffered a mortal blow.
A Lucas own goal and a Curtis Davies header saw Villa 2-0 up at the break. Fernando Torres pulled one back but an Ashley Young penalty settled the points.
Martin Skrtel returned to Liverpool's defence in place of teenager Daniel Ayala, having recovered sufficiently from a jaw injury to be risked.
This was the only change in the Liverpool side from the one that beat Stoke at home last week, with new Greek defender Sotirios Kyrgiakos not included in the squad.
Villa included Curtis Davies, who had recovered from a shoulder injury. Brad Friedel, Gabriel Agbonlahor and Stiliyan Petrov all returned to the side after being rested in the Europa League defeat away to Rapid Vienna last week.
Liverpool produced a vibrant start, but found themselves frustrated by the quick-tackling, quick-thinking Villa midfield.
The hosts could have been ahead in the first minute when Yossi Benayoun's back-header from Torres' chip into the area, beat Friedel but dropped inches wide.
A taste of what was to follow came from Villa's first chance came when Davies met a Nicky Shorey cross with a strong header, but it went straight at Jose Reina.
Torres and Steven Gerrard both saw shots blocked in the six-yard box, before Young was booked after 12 minutes for halting a Dirk Kuyt run.
Then Gerrard struck a first-timer from 20-yards just over from Kuyt's touched pass.
But Liverpool's problems were beginning to mount in a midfield that they were unable to dominate.
Javier Mascherano and Lucas were both fortunate not to be cautioned for fouls on Petrov and Agbonlahor in quick succession.
Torres was also coming in for some rough treatment from Carlos Cuellar, two tackles from behind going unpunished by referee Martin Atkinson.
By now Nigel Reo-Coker and Steve Sidwell were successfully breaking up Gerrard's flow in midfield, and Villa were soon to take the lead.
It came after 33 minutes when Lucas gave away a needless free-kick in midfield. Young swung the set-piece towards the near post, and it was the unfortunate Lucas who rose to head the ball past Reina for an own-goal.
Liverpool's play was sloppy and far too much possession was being conceded with ill-directed passes.
Further calamity came after Reina was booked in first half injury time for kicking the ball away in annoyance when referee Atkinson awarded a disputed corner, Sidwell's shot looking to have clipped a defender.
And from that disputed corner Villa found themselves two up. Shorey's corner swung into the near post and was headed home by Davies.
The hosts have staged some amazing comebacks in this stadium over the years, and they were going to need another massive performance to salvage anything from this situation.
Villa defended with organisation and desire. Roe-Coker was booked for kicking the ball away, and Friedel produced a fine save from a Kuyt header.
Kuyt then saw another header hit a post from a Gerrard corner from the left.
But Villa were still showing great resilience, and breaking quickly to cause Liverpool all sorts of problems at the back, Reo-Coker being only inches away from a third with one sliding attempt.
Liverpool sent on Andriy Voronin for Lucas after 66 minutes, with Friedel producing another fine stop from a Gerrard drive soon after.
But after 72 minutes Liverpool finally gave themselves some hope when Emiliano Insua got down the left and rolled the ball into the six-yard box for Torres to score.
Two minutes later Liverpool were back in despair and Villa celebrating. Shorey's pass into the path of Reo-Coker saw the midfielder surge into the box only to be felled by Gerrard's desperate tackle.
It was a clear penalty and Young stepped up to restore Villa's two-goal lead.
Liverpool's frustration was obvious. Torres was booked for dissent when Young went down injured and asked for treatment. He was eventually replaced by Heskey.
Ryan Babel came on for Benayoun, Liverpool still coming forward. Friedel again made a fine save from a Torres flick, before Kuyt sent a close range effort wide of the far post.
The outstanding Friedel, against his former club, saved from Torres and Glen Johnson, with Skrtel booked in the dying minutes, but Villa held on for a famous victory.