Riyad Mahrez saw a late penalty saved as Manchester City came from two goals behind to seal a thrilling draw at West Ham and hold on to their advantage in the Premier League title race.
Jarrod Bowen struck twice as City looked crestfallen at the break, but a deflected Jack Grealish goal three minutes after the restart kickstarted an improved second-half showing.
Vladimir Coufal headed into his own net, and the visitors were then handed the perfect chance to seal the win from the penalty spot. However, Riyad Mahrez's effort was saved to ensure the Premier League title race remains alive. Here are the main talking points from a wet afternoon at the London Stadium.
1. No fast start
It was a far more pedestrian start from City in the capital compared to their last Premier League outing. Guardiola's side had raced into a 3-1 lead at Molineux on Wednesday night, courtesy of an astonishing Kevin De Bruyne hat-trick.
This time around, it was a slower opening from the visitors who unsurprisingly enjoyed almost 80% of possession by the 15-minute mark. Craig Dawson headed over when he should have done better, and Michail Antonio's pace and power posed a problem.
However, City otherwise controlled proceedings without fashioning chances, although they could count themselves unfortunate not to be awarded a penalty for a clumsy Kurt Zouma challenge on Gabriel Jesus. Sky Sports commentator Gary Neville described the display from the title-chasers as 'laboured', with the West Ham defence rarely threatened in the first-half.
2. 'Our captain'
The narrative prior to kick-off inevitably centred upon the Premier League title race, but for the Hammers it was a chance to bid goodbye to one of their own. Mark Noble started the match on the bench, but was clearly overcome with emotion when he walked out to salute the home crowd before the game.
The West Ham captain has called time on his 18-year career with his boyhood club at the end of this season.. Noble has seen his playing time reduced in recent years, but made his 549th appearance as a substitute in the 76th minute and was instantly handed the armband by Declan Rice.
In addition to the celebration ahead of kick-off, applause rang out around the London Stadium in the 16th minute in tribute to the departing skipper. Noble could yet reach the milestone of 550 appearances for his beloved Hammers on the final day at Brighton.
3. Bowen's brace
The opening goal of the contest would likely have been celebrated just as strongly in the red-half of Merseyside. West Ham had rarely ventured out of their own half, but pulled off the perfect sucker-punch through Bowen.
The in-form forward was not tracked by Oleksandr Zinchenko, and he picked up Pablo Fornals long pass to find himself one-on-one with Ederson. Bowen was undaunted, and confidently rounded the City goalkeeper to find the empty net.
Given the importance of a win for Guardiola's side, the goal should have been a wake-up call for the visitors. Instead, going behind failed to spark a reaction and City found themselves two goals behind at the break.
Bowen once again found himself in behind with an expertly-timed run off Zinchenko, and the former Hull City man fired through Fernandinho's legs to double the Hammers' advantage.
4. Instant response
Whatever Guardiola said in his half-time team talk, his words had the desired effect. Within three minutes of the restart, City halved the deficit through Grealish's deflected strike.
Guardiola opted against making any changes, but the visitors clearly came out for the second-half with more width. Grealish and Riyad Mahrez hugged the touchlines, creating space for runs from de Bruyne and Bernardo Silva to cause havoc.
The goal itself came from a hopeful cross from Zinchenko, with Rodri knocking the ball down for Grealish. The £100 million man connected well, but the deflection off Craig Dawson gave Lukasz Fabianski no chance.
5. Antonio's costly miss
City pressed relentlessly in pursuit of an equaliser that was beginning to look inevitable. But despite this dominance, the visitors still looked susceptible to a defensive calamity.
First, it was a mix-up between Ederson and Aymeric Laporte, as well as a poor clearance from Zinchenko, which allowed Bowen to advance and fire into the side-netting. However, the best chance came after Antonio pounced upon a loose backpass from Fernandinho.
West Ham's number nine found himself with only Ederson to beat, but scuffed his attempted chip shot wide. Four minutes later, Vladimir Coufal headed into his net from a Mahrez free-kick to level the contest.
6. Mahrez penalty
Having had one penalty appeal waved away by VAR, City were awarded a spot-kick and a chance to seal a vital win with just minutes remaining. Anthony Taylor was advised to check the pitchside monitor, and penalised Dawson for a foul on Jesus.
Mahrez was handed the responsibility to all but guarantee City's fourth Premier League title success in five seasons. However, the winger's tame effort was confidently beaten away by Fabianski.
City still hold their title destiny in their own hands, but were unable to pull off the perfect comeback which would have made Liverpool's unlikely bid for quadruple almost impossible.