Manchester City's 21-game unbeaten run in the Carabao Cup came to an end with a penalty shootout loss to West Ham at the London Stadium on Wednesday night.
The opening exchanges were tight and cagey, before Mark Noble had a speculative effort palmed away by Zack Steffen. Craig Dawson thwarted Kevin De Bruyne's cross on the counter down the other end.
Cole Palmer saw his stinging shot from distance saved by the feet of Alphonse Areola as City struggled to break West Ham down.
A game of few chances was goalless at half-time, but Arthur Masuaku went close to giving the hosts the lead just after the break. He first tried dribbling at the heart of the City defence but was marshalled away from danger, but a sliced shot went just over Steffen's goal.
Palmer released Ilkay Gundogan down the other end a few minutes later, but the German was caught in two minds and his cross-shot went harmlessly wide.
Masuaku was causing City more problems at the other end and forced a save out of Steffen before Zinchenko blocked the rebound from compatriot Andriy Yarmolenko.
Areola was on hand to deny Raheem Sterling, De Bruyne and John Stones within a two-minute stretch as the game continued to liven up, while Tomas Soucek dragged a shot from 12-yards wide.
Substitute Phil Foden's deflected cross fell kindly to Gundogan, but Areola denied him from six yards.
Zinchenko had a thumping strike from 25 yards tipped over by the France international as the clock wound down, and Sterling had his header denied in the dying seconds as the tie went to penalties.
Noble scored the first penalty before Foden pulled City's wide to give West Ham the early advantage. Bowen just about scored his as did Joao Cancelo to get the visitors off the mark, while Craig Dawson and Gabriel Jesus both found the back of the net.
Cresswell scored West Ham's fourth though Grealish kept City's hopes alive, but Said Benrahma stepped up to dump City out of the Carabao Cup.
WEST HAM PLAYER RATINGS
1. Goalkeeper & defenders
Alphonse Areola (GK) - 8/10 - Produced some top saves to deny City. Probably deserving of a Premier League run.
Ben Johnson (RB) - 7/10 - Full of energy and is definitely a reliable deputy to Vladimir Coufal.
Craig Dawson (CB) - 5/10 - In the wars but was the weaker of West Ham's centre-backs.
Issa Diop (CB) - 7/10 - Sniffed out danger very well, imperious at the back.
Aaron Cresswell (LB) - 6/10 - Par-for-the-course performance.
Tomas Soucek (CM) - 5/10 - Wasn't much use at either end tonight,
Mark Noble (CM) - 7/10 - Rolled back the years with an all-action performance.
Manuel Lanzini (AM) - 5/10 - Kept things ticking without sparking into life.
Nikola Vlasic (RW) - 6/10 - Some neat touches and passes but you felt he could have delivered more.
Andriy Yarmolenko (CF) - 5/10 - Wasn't totally useless up front but he's not Michail Antonio, is he?
Arthur Masuaku (LW) - 6/10 - A live-wire, but only gave West Ham about 15 minutes of useful game time.
Jarrod Bowen (CF) - 5/10 - Danger for City dried up when Bowen was leading the line.
Said Benrahma (LW) - 6/10 - Flashes of quality but sometimes held onto the ball for too long.
Pablo Fornals (AM) - 5/10 - Wasn't in the game enough.
Vladimir Coufal (RW) - N/A
MANCHESTER CITY PLAYER RATINGS
5. Goalkeeper & defenders
Zack Steffen (GK) - 7/10 - As calm as Ederson on the ball and has the reflexes to match.
Kyle Walker (RB) - 5/10 - Didn't have much to do at either end. Hooked at half-time.
John Stones (CB) - 6/10 - Nearly scored but otherwise a quiet performance.
Nathan Ake (CB) - 7/10 - Picked West Ham apart a couple of times with some line-breaking passes.
Oleksandr Zinchenko (LB) - 7/10 - A busy night in defence and attack for the Ukrainian.
Fernandinho (DM) - 6/10 - Easily handled Soucek but had a tougher time dealing with Noble.
Kevin De Bruyne (CM) - 7/10 - Still doesn't look right physically but was much better on the ball.
Ilkay Gundogan (CM) - 7/10 - Got into great positions but just couldn't find the net.
Riyad Mahrez (RW) - 4/10 - Did some step-overs. That was about it.
Cole Palmer (CF) - 6/10 - Always keen to get involved but just lacked that bit of quality needed in the penalty area.
Raheem Sterling (LW) - 6/10 - Similar to Gundogan. You didn't back Sterling to beat his man no matter which side he was on, however.
Joao Cancelo (RB) - 5/10 - Not much better than Walker, to be honest.
Phil Foden (CF) - 7/10 - Brought a freshness to City's attack.
Gabriel Jesus (LW) - N/A
Jack Grealish (CM) - N/A