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.
Relive the action from Upton Park as it happened, plus all the best pictures and social media
Listen to the goals from the game on BBC Radio 5 live
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 Jordan 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.
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.”