Michail Antonio - 5. The 32-year-old was introduced for Downes with 16 minutes left. He never really got into the game and was frustrated when Scamacca shot instead of pulling the ball back. Getty
LIVERPOOL RATINGS: Alisson Becker - 8. The Brazilian’s marvellous penalty save maintained Liverpool’s first-half lead and his late stop from Soucek guaranteed the points. He did not have much to do in between but he was dependable when needed.
AP
Trent Alexander-Arnold - 6. The 23-year-old was not as creative as usual but did not suffer many alarms defensively. He had his hands full with Benrahma late on. EPA
Joe Gomez - 5. The 25-year-old made a stupid challenge to give away a needless penalty and was twitchy in the periods when West Ham flooded forward. He was effective in the air. Reuters
Virgil van Dijk - 7. The Dutchman made a vital block to deny Downes and was commanding when the defence was under pressure. An assured display. AP
Kostas Tsimikas - 6. The Greek provided a splendid cross for Nunez’s goal but he was sometimes drawn out of position, particularly before West Ham’s penalty. Robertson replaced him with nine minutes to go. AFP
Jordan Henderson - 7. The captain kept up a high tempo in the first half and looked to release Nunez running behind. He seemed a bit tired towards the end but kept up his effort. EPA
Thiago Alcantara - 7. The 31-year-old was in charge in the midfield and drove the team forward in the first half. His long ball to Nunez showed that a dangerous understanding is growing between the players. He was taken off in the 58th minute for Fabinho because his influence was declining. PA
Fabio Carvalho - 6. The Portuguese buzzed around, closing down opponents and running at the defence. He was muscled out of the game on occasion and came off for Jones in the 57th minute. Getty
Mohamed Salah - 6. The Egyptian was deployed on the right and had a couple of half chances. He was given few opportunities to run at the defence or get behind them. PA
Roberto Firmino - 6. The Brazilian was bright in the opening period, operating in the space between the attack and midfield. He linked well with Nunez but was substituted for Milner with nine minutes to go. AP
Darwin Nunez - 8. The Uruguayan is beginning to find his feet. He tested Fabianski with a spectacular effort and scored a tremendous header. The post denied him a second goal and he was withdrawn for Elliott in the 57th minute. AFP
SUBS: Harvey Elliott - 6. The 19-year-old replaced Nunez in the 57th minute. He brought fresh legs to the team and dropped back to help the defence. Getty
Curtis Jones - 6. The 21-year-old joined the action at Carvalho’s expense in the 57th minute. He had one effort on goal blocked. Reuters
Fabinho - 5. The Brazilian came on for Thiago in the 58th minute. He lacked authority and was unable to stop West Ham getting on top. EPA
Andrew Robertson - N/A. The Scot replaced Tsimikas with nine minutes left. He produced hard running and hard tackles. Getty
James Milner - N/A. The 36-year-old came on for Firmino with nine minutes to go. His crucial tackle on Scamacca late in the game ensured Liverpool did not drop two points. Getty
WEST HAM RATINGS: Lukasz Fabianski - 7. The Pole made a superb fingertip save from Nunez and foiled Salah late in the game. He had no chance with the goal. EPA
Ben Johnson - 4. The 22-year-old gave away the ball after being caught in possession on the edge of his box and had a lucky escape. He gave Tsimikas too much room before the goal, which showed his inexperience. Getty
Kurt Zouma - 6. The Frenchman got caught under the ball for Liverpool’s goal as Nunez split the centre-backs. He made a last-gasp clearance from Henderson’s cross and a number of blocks and interceptions. EPA
Thilo Kehrer - 5. The German was slow to get to Nunez for the goal. He was guilty of dwelling on the ball and was fortunate not to be punished by Salah. AFP
Aaron Cresswell - 5. The 32-year-old blocked a Firmino shot but he could have helped out the defence more efficiently. He created a chance that Scamacca wasted. AFP
Flynn Downes - 6. The 23-year-old made his first Premier League start. He struggled to get into the game in the first half but was improving steadily until he was replaced by Antonio in the 74th minute. Getty
Tomas Soucek - 6. The Czech was denied by Alisson late on but he was influential during West Ham’s best spells. He was less visible in the first half when Liverpool were in charge. PA
Declan Rice - 7. The 23-year-old used the ball well and was clever in regaining possession for his team. Much of West Ham's thrust came from him. Getty
Pablo Fornals - 4. The Spaniard was largely anonymous. The defence was comfortable when he was on the pitch and West Ham were better when he departed for Benrahma in the 61st minute. Getty Images
Jarrod Bowen - 6. The 25-year-old won a penalty after a good run but his spot-kick was saved. His running from deep created danger but his end product was lacking. AP
Gianluca Scamacca - 3. The Italian was poor. His touch and finishing let him down when he had a second-half chance. He was robbed by Milner in the closing minutes when he seemed certain to score. AP
SUBS: Said Benrahma - 6. The Algerian replaced Fornals in the 61st minute. He was a source of danger down the left but should have levelled the scores when free at the back post but he mishit the ball. Getty
Michail Antonio - 5. The 32-year-old was introduced for Downes with 16 minutes left. He never really got into the game and was frustrated when Scamacca shot instead of pulling the ball back. Getty
LIVERPOOL RATINGS: Alisson Becker - 8. The Brazilian’s marvellous penalty save maintained Liverpool’s first-half lead and his late stop from Soucek guaranteed the points. He did not have much to do in between but he was dependable when needed.
AP
Trent Alexander-Arnold - 6. The 23-year-old was not as creative as usual but did not suffer many alarms defensively. He had his hands full with Benrahma late on. EPA
Joe Gomez - 5. The 25-year-old made a stupid challenge to give away a needless penalty and was twitchy in the periods when West Ham flooded forward. He was effective in the air. Reuters
Virgil van Dijk - 7. The Dutchman made a vital block to deny Downes and was commanding when the defence was under pressure. An assured display. AP
Kostas Tsimikas - 6. The Greek provided a splendid cross for Nunez’s goal but he was sometimes drawn out of position, particularly before West Ham’s penalty. Robertson replaced him with nine minutes to go. AFP
Jordan Henderson - 7. The captain kept up a high tempo in the first half and looked to release Nunez running behind. He seemed a bit tired towards the end but kept up his effort. EPA
Thiago Alcantara - 7. The 31-year-old was in charge in the midfield and drove the team forward in the first half. His long ball to Nunez showed that a dangerous understanding is growing between the players. He was taken off in the 58th minute for Fabinho because his influence was declining. PA
Fabio Carvalho - 6. The Portuguese buzzed around, closing down opponents and running at the defence. He was muscled out of the game on occasion and came off for Jones in the 57th minute. Getty
Mohamed Salah - 6. The Egyptian was deployed on the right and had a couple of half chances. He was given few opportunities to run at the defence or get behind them. PA
Roberto Firmino - 6. The Brazilian was bright in the opening period, operating in the space between the attack and midfield. He linked well with Nunez but was substituted for Milner with nine minutes to go. AP
Darwin Nunez - 8. The Uruguayan is beginning to find his feet. He tested Fabianski with a spectacular effort and scored a tremendous header. The post denied him a second goal and he was withdrawn for Elliott in the 57th minute. AFP
SUBS: Harvey Elliott - 6. The 19-year-old replaced Nunez in the 57th minute. He brought fresh legs to the team and dropped back to help the defence. Getty
Curtis Jones - 6. The 21-year-old joined the action at Carvalho’s expense in the 57th minute. He had one effort on goal blocked. Reuters
Fabinho - 5. The Brazilian came on for Thiago in the 58th minute. He lacked authority and was unable to stop West Ham getting on top. EPA
Andrew Robertson - N/A. The Scot replaced Tsimikas with nine minutes left. He produced hard running and hard tackles. Getty
James Milner - N/A. The 36-year-old came on for Firmino with nine minutes to go. His crucial tackle on Scamacca late in the game ensured Liverpool did not drop two points. Getty
WEST HAM RATINGS: Lukasz Fabianski - 7. The Pole made a superb fingertip save from Nunez and foiled Salah late in the game. He had no chance with the goal. EPA
Ben Johnson - 4. The 22-year-old gave away the ball after being caught in possession on the edge of his box and had a lucky escape. He gave Tsimikas too much room before the goal, which showed his inexperience. Getty
Kurt Zouma - 6. The Frenchman got caught under the ball for Liverpool’s goal as Nunez split the centre-backs. He made a last-gasp clearance from Henderson’s cross and a number of blocks and interceptions. EPA
Thilo Kehrer - 5. The German was slow to get to Nunez for the goal. He was guilty of dwelling on the ball and was fortunate not to be punished by Salah. AFP
Aaron Cresswell - 5. The 32-year-old blocked a Firmino shot but he could have helped out the defence more efficiently. He created a chance that Scamacca wasted. AFP
Flynn Downes - 6. The 23-year-old made his first Premier League start. He struggled to get into the game in the first half but was improving steadily until he was replaced by Antonio in the 74th minute. Getty
Tomas Soucek - 6. The Czech was denied by Alisson late on but he was influential during West Ham’s best spells. He was less visible in the first half when Liverpool were in charge. PA
Declan Rice - 7. The 23-year-old used the ball well and was clever in regaining possession for his team. Much of West Ham's thrust came from him. Getty
Pablo Fornals - 4. The Spaniard was largely anonymous. The defence was comfortable when he was on the pitch and West Ham were better when he departed for Benrahma in the 61st minute. Getty Images
Jarrod Bowen - 6. The 25-year-old won a penalty after a good run but his spot-kick was saved. His running from deep created danger but his end product was lacking. AP
Gianluca Scamacca - 3. The Italian was poor. His touch and finishing let him down when he had a second-half chance. He was robbed by Milner in the closing minutes when he seemed certain to score. AP
SUBS: Said Benrahma - 6. The Algerian replaced Fornals in the 61st minute. He was a source of danger down the left but should have levelled the scores when free at the back post but he mishit the ball. Getty
Michail Antonio - 5. The 32-year-old was introduced for Downes with 16 minutes left. He never really got into the game and was frustrated when Scamacca shot instead of pulling the ball back. Getty