Substitute Jota had a winning goal ruled out after VAR review, but then made amends by slotting past Fabianski.
The win sends Liverpool top of the Premier League, moving three points clear of Merseyside rivals Everton who play Southampton tomorrow.
Meanwhile, West Ham lie in 13th and are left to rue what could have been after a stern defensive effort.
Alisson – 6. The Brazilian cannot be blamed for the goal, and he had little else to do.
Trent Alexander-Arnold – 6. The usually-influential right back struggled to find a way past West Ham, seeing his crosses and free kicks blocked throughout. Continued to attack and give his all.
Joe Gomez – 6. His header clear was poor, and Fornals took full advantage. Gomez recovered well.
Nathaniel Phillips – 7. The league debutant dealt with the threat of Haller well, and defended well throughout.
Andy Robertson – 7. Defended well, and made a crucial intervention when West Ham looked to double their lead. He made another block to deny Fornals a second.
Curtis Jones – 6. The youngster was lucky to not get booked for a challenge on Fornals, and struggled in the first half but improved in the second.
Jordan Henderson – 7. Came close to equalizing with a placed shot from distance,
Gini Wijnaldum – 5. The Dutchman had a first half to forget, and his second half wasn’t much better as he failed to impose himself in midfield.
Mohamed Salah – 7. The Egyptian started bright and scored the penalty. He got himself in dangerous positions, but missed the target when he had the chance to shoot at Fabianski.
Roberto Firmino – 4. The Brazilian striker barely touched the ball, and was poor in possession when he did.
Sadio Mane – 6. Anything that was bright for Liverpool went through the winger, but he struggled to produce in the final third.
Diogo Jota – 8. The Portugal international was almost the difference, and he added the spark the Reds were missing. Unlucky to not score the winner the first time around, but he made no mistake when played in by Shaqiri.
Lukasz Fabianksi – 6. The Pole shouldn’t be blamed for the goal – obviously – but he was worrying in the first half as he spilt two crosses. He excellently stopped Robertson’s pull back, which would have been a certain goal.
Vladimir Coufal – 6. Struggled against Mane at times, but always offered himself on the rare occasion that West Ham had possession.
Fabian Balbuena – 7. Defended excellently to deny Mane and co. in the first half
Angelo Ogbonna – 7. The Italian central defender was strong in the air and kept Liverpool at bay.
Aaron Cresswell – 7. The traditional left back played more centrally, and he thrived against Liverpool’s star-studded attack.
Arthur Masuaku – 5. He got forward well, but his foolish challenge ruined West Ham’s incredible first half, and it was their only real lapse in concentration in the opening period.
Jarrod Bowen – 6. He was anonymous for much of the first half, but Bowen played the crucial through ball that ignited West Ham’s attack that was finished by Fornals.
Tomas Soucek – 5. Soucek never got in the game, and was completely anonymous,
Declan Rice – 8. The England international dominated the midfield, and was calm in possession. He made a number of key interceptions and tackles as West Ham tried to stay in the game.
Pablo Fornals – 7. The Spaniard excellently took his chance to fire past Alisson off the post after Gomez’s poor clearance.
Sebastien Haller – 4. It was his first league start since before lockdown, and it showed. The Frenchman was wasteful in possession and generally offered nothing.
This weekend get a £10 free bet with Betfair, when you bet £10 on a Same Game Multi on the Premier League. Terms: Min £10 Same Game Multi bet on any EPL match this Fri – Sun. Free bet valid for 72 hours, awarded at bet settlement. Excludes cashed out bets. T&Cs apply.