Fernando Torres scored twice as Liverpool held off a brave fightback from West Ham to claim a deserved 3-2 victory in a thriller at Upton Park.
Torres put the Reds in front in the 19th minute with a fine solo goal but debutant Alessandro Diamanti levelled from the penalty spot.
Dirk Kuyt restored Liverpool's lead in the 40th minute but Carlton Cole levelled a minute before the interval. Torres settled a pulsating game when he headed home from close range in the 75th minute.
Torres acrobatically volleyed wide after 17 minutes before opening the scoring three minutes later. The Spaniard broke down the left flank, bamboozled James Tomkins and poked home at the near post.
West Ham's woes continued moments later when Valon Behrami was forced out of the action through injury and replaced by Radoslav Kovac. It was the second enforced change for Gianfranco Zola's side who lost Matthew Upson earlier in the opening half.
But the home side were back in the game in the 28th minute when referee Andre Marriner adjudged that Hines had been pushed by Carragher in the box. Alessandro Diamanti stepped-up to take the penalty and even though he put the ball into the net, the striker appeared to slip as he connected with the ball and touched it twice.
Angry Liverpool players protested that the penalty should be ruled out as Diamanti had touched the ball more than once but Marriner rejected their protests.
But the visitors went back in front when an outswinging corner from Yossi Benayoun was headed towards the far post by Steven Gerrard only for Kuyt to stick out a foot and poke the ball into the corner.
A minute before the half-time whistle, West Ham equalised again when England striker Cole rose highest in the six-yard box to meet Mark Noble's corner and head the Hammers level for the second time in the game.
The Reds clinched the game in the 75th minute when substitute Ryan Babel's cross was headed into the corner of the net by Torres from eight yards.