Could do nothing about Ba's shock goal but earlier stayed big to get enough on the ball to deny Keane after the Irishman raced through on goal.
The Belgian was strong and composed at the back as he bullied Keane off the ball with his agility and athleticism.
Moments after losing track of Keane, the defender failed to deal with a cross into the box and handled before Ba struck for the visitors. Made some important challenges in the second-half.
Solid enough performance from the Serbian but did get caught out by Sears on a couple of occasions.
Even if he is not credited with the goal, it was his powerful run and accurate shot that put City 2-0 up. Always offered an attacking outlet and defended comfortably.
A new hero for the City faithful following his winner against Manchester United, the Ivorian was a threat when he was able to drive at the visitors' defenders and slipped one perfect pass to Silva.
Had the beating of Gabbidon from the first minute, running directly and at pace to twist the West Ham full-back into a knot. Perhaps lacked a killer delivery with his final ball.
N. de Jong
Embodied the confidence City started the game with as a swept home a beautiful opener from 30 yards, his first goal for the club. Solid in the midfield holding role before being forced off at the break through injury.
The Spanish maestro was always happy to pick the ball up in tight spaces and had the creativity to see the bigger picture. Missed great chance when one-on-one with Green but wonderful vision and execution to pick out Zabaleta for the second goal and created two excellent opportunities for Balotelli.
The England midfielder dictated play from deep positions as West Ham allowed him space to move the ball with short and long passes.
On the periphery for much of the game, although he worked hard and was a threat in front of goal. Two excellent opportunities in the second-half but he hit the crossbar and saw Tomkins clear off the line.
Seemed to be caught on his heels as De Jong opened the scoring but brilliant to deny Silva in the second-half when the Spaniard ran through on goal.
Looked slow and could not get to grips with the slickness of City's passing and footwork before being replaced due to injury in the 26th minute.
The Dane was slightly unlucky as City went two up when he could only direct Zabaleta's shot into his own net. Generally solid but slow to get back after he made forward runs.
Struggled badly in the first 15 minutes but vastly improved as the game went on. Excellent block on the line to deny Balotelli.
Shaky throughout the game against the trickery of Johnson. Picked up a booking for a cynical challenge on the England winger which suggested he knew he was losing the battle. Improved in the second-half.
The American offered some snap and bite to the West Ham midfield, nicking lots of balls in the second-half and injecting energy into the visitors' play. Lacked quality on the ball in attacking positions.
Worked hard and niggardly style annoyed some of the City players. Never showed any great quality on the ball and replaced in the 79th minute.
Sweet left foot created havoc in the City box in the build-up to Ba's goals. Tidy in possession but often abdicated defensive responsibilities, failing to track runs from midfield.
Wasted a glorious chance to score as he ran through on goal but shot into Hart's legs. At times linked up the play nicely but struggled to get away from defenders.
Poacher's finish to grab a goal back for the visitors from close range. Unpredictable performance in the main, with plenty of wayward shots from long range.
Impressive performance on the right wing from the youngster. Full of running and energy, won the ball well and produced some nice passes including one that put Keane one-on-one with Hart.
- 12 S. Taylor
- 38 D. Boyata
Half-time replacement for De Jong. Tenacious and worked hard without linking the play particularly well.
- 8 S. Wright-Phillips
Came on for Balotelli in the 86th minute at the hosts looked to see the game out.
- 27 Jô
Replaced Barry in the 74th minute. Smashed one effort at Green from 30 yards and did seem to be playing with more confidence after his first Premier League goal last Monday.
- 31 R. Boffin
- 2 W. Reid
Manuel da Costa
Replaced the injured Upson in the 26th minute. Caught out on a couple of occasions by swift City attacks but generally solid. Forced Hart into a save with second-half header.
- 14 R. Kováč
- 30 F. Piquionne
The striker came on for Keane in the 66th minute and offered a focal point for the West Ham attack without looking a threat in the final third.