Match ends, West Ham United 2, Liverpool 0.
Andy Carroll scored against his former club as West Ham leapfrogged Liverpool in the table thanks to a first league double over the Reds for 52 years.
Michail Antonio beat Nathaniel Clyne to Enner Valencia's early cross to net the Premier League's first goal of 2016.
Liverpool midfielder Emre Can was denied by the bar but Jurgen Klopp's side were off the pace throughout.
Carroll, who cost Liverpool a club record £35m in 2011, sealed the points after meeting Mark Noble's cross.
West Ham's second straight win lifted them to sixth in the table, Liverpool dropping to eighth.
Liverpool's shortcomings repeated
Liverpool travelled to London knowing victory would leave them just two points off a Champions League place after back-to-back festive wins over Leicester and Sunderland.
Yet this was a stark reminder to Klopp that he has his work cut out in 2016 after a lacklustre display that had echoes of the 3-0 defeat by Watford last month.
Can did clip the Hammers bar with a curling effort from the edge of the penalty area in added time at the end of the first half. The closest they came prior to that was Jordon Ibe's low shot in the fourth minute which whistled just wide.
Lucas then had a header cleared off the line by Mark Noble at 2-0 and substitute Joe Allen wasted a great chance late on. However, West Ham showed more attacking threat and more energy, and were just as impressive as they were when they defeated Brendan Rodgers' Reds 3-0 in August.
Day for Carroll to remember, Benteke to forget
Carroll has endured some dark days at West Ham since joining for £15m in June 2013 thanks to injuries, but this was an afternoon to remember for the former Reds player, who remains Liverpool's record signing.
He produced a trademark header to meet a wonderfully weighted cross, Clyne again beaten in the air as he was for Antonio's goal. Carroll celebrated as though his goal had decided the title.
In contrast, Christian Benteke - Liverpool's second costliest player - endured a miserable day as his first touch deserted him time and again. He was played through in the 25th minute but allowed James Tomkins to whip the ball off his toes before ballooning a 58th-minute chance over the bar.
How far can West Ham go this season?
Hammers boss Slaven Bilic was not even born the last time West Ham did the double over Liverpool. As poor as the Reds were, West Ham were impressive.
James Collins was excellent at the back as West Ham recorded a fifth clean sheet in seven games, Noble produced a performance full of grit and determination in midfield and Antonio, who started the season at Nottingham Forest, was lively on the wing and fully deserved his second goal in two games.
Liverpool join Arsenal, Manchester City, Chelsea and Southampton on the list of scalps West Ham have claimed in the Premier League this season.
Will they be starting life at the Olympic Stadium next season in European competition? You would not rule it out at this stage.
Lanzini set for a spell out?
The Hammers were able to welcome back key man Dimitri Payet from injury as a second-half substitute - but did lose Manuel Lanzini in the 39th minute.
Lanzini had hit the post with a swerving drive before going down with a muscle injury which could keep him out for some time.
Bilic said after the game that it was a tendon problem, while co-chairman David Gold tweeted that he could be out for four to six weeks.
Lanzini will have a scan on Monday.
Man of the Match - Michail Antonio (West Ham)
What the managers said
West Ham manager Slaven Bilic: "We created many not only on the break but from open play and we could have scored more. To keep a clean sheet at home to Liverpool is brilliant for the fans and it's a brilliant start to the New Year.
"We played a really good game - especially in the second half. Of course Liverpool had their moments because they are a good passing team but we defended really well as a team."
Liverpool manager Jurgen Klopp: "The game was decided by two crosses and two headers. At the end of the first half we had our moments but it was not enough.
"We always had the ball. We could have made more chances but we didn't so we have to accept that again we didn't play like we should."
The stats you need to know
- West Ham are now unbeaten in eight Premier League home games and have not lost at Upton Park since 22 August
- Andy Carroll has scored in consecutive Premier League appearances for the first time since January 2015
- The Hammers have scored five league goals against Liverpool in a single season for the first time since 1930-31
- Liverpool have mustered just one goal in their past four Premier League away games
- There were 41 shots (including blocked attempts) in this match - only Leicester v Arsenal (43) in September has seen more in the Premier League this season
West Ham's next match is an FA Cup third-round home tie with Wolverhampton Wanderers (15:00 GMT) next Saturday before travelling to Bournemouth (19:45 GMT) in the Premier League on 12 January.
Liverpool have two cup ties before their next Premier League game at home to Arsenal (20:00 GMT) on 13 January. They are at Stoke City (20:00 GMT) in the League Cup semi-final first leg on Tuesday, then travel to Devon to face League Two Exeter City (19:55 GMT) in the FA Cup third round on Friday.
- 30AntonioSubstituted forJenkinsonat 86'minutes
- 28LanziniBooked at 18minsSubstituted forObiangat 39'minutes
- 11E ValenciaSubstituted forPayetat 64'minutes
- 17SakhoSubstituted forAllenat 82'minutes
- 18MorenoSubstituted forB Smithat 61'minutes
- 21LeivaBooked at 24mins
- 11FirminoSubstituted forLallanaat 61'minutes
- 4K Touré
- 44B Smith
- Robert Madley
- Shots on Target
Second Half ends, West Ham United 2, Liverpool 0.
Foul by Nathaniel Clyne (Liverpool).
Mark Noble (West Ham United) wins a free kick in the defensive half.
Attempt missed. Joe Allen (Liverpool) header from the centre of the box is close, but misses to the right. Assisted by Philippe Coutinho with a cross.
Attempt saved. Cheikhou Kouyaté (West Ham United) right footed shot from outside the box is saved in the centre of the goal. Assisted by Dimitri Payet with a through ball.
Brad Smith (Liverpool) wins a free kick in the defensive half.
Foul by Carl Jenkinson (West Ham United).
Foul by Joe Allen (Liverpool).
Mark Noble (West Ham United) wins a free kick on the right wing.
Foul by Lucas Leiva (Liverpool).
Cheikhou Kouyaté (West Ham United) wins a free kick in the defensive half.
Substitution, West Ham United. Carl Jenkinson replaces Michail Antonio.
Corner, Liverpool. Conceded by James Collins.
Nathaniel Clyne (Liverpool) wins a free kick in the defensive half.
Foul by Andy Carroll (West Ham United).
Attempt saved. Mark Noble (West Ham United) right footed shot from the right side of the box is saved in the bottom left corner. Assisted by Michail Antonio.
Substitution, Liverpool. Joe Allen replaces Mamadou Sakho.
Corner, Liverpool. Conceded by James Tomkins.
Attempt blocked. Christian Benteke (Liverpool) header from the centre of the box is blocked. Assisted by Brad Smith with a cross.