Match ends, Manchester City 0, Stoke City 0.
Manchester City's title hopes suffered a potentially-decisive blow after they were held by a resolute Stoke side and missed the chance to cut Chelsea's lead at the top of the table.
A win for City would have moved them above Tottenham and into second place but they could not find the attacking spark required to break down a well-drilled Potters side.
City boss Pep Guardiola had said before kick-off that his team could not afford any more slip-ups in their pursuit of the leaders, who remain 10 points clear of the chasing pack with 11 games left.
Guardiola's side were sluggish before the break and, although they improved when David Silva came off the bench in the second half, he could not make the difference.
Silva had City's best effort when he drilled a low shot a fraction wide after a one-two with Fernandinho but, despite a flurry of late chances, Stoke keeper Lee Grant's only save came from a first-half free-kick by Aleksandar Kolarov.
City's big week starts badly
City are still, in theory at least, chasing silverware on three fronts and head to Middlesbrough in the FA Cup on Saturday before travelling to Monaco in the Champions League on Wednesday.
It is a pivotal week in Pep Guardiola's first season in English football, but this result means it has started in frustrating fashion.
The attacking verve that had carried City to four straight league wins and seen them hit five goals past Monaco and Huddersfield in the last month was, initially, nowhere to be seen.
Too many misplaced passes meant Stoke were under little pressure for much of the match, and City's finishing was also wide of the mark when they did create chances late on.
Sergio Aguero had scored five goals in his previous three games but did not find the target with any of his three efforts.
Leroy Sane flashed a shot over the bar, Nicolas Otamendi headed over from a corner and City's last chance came and went when Kelechi Iheanacho met an inviting cross at the near post but steered the ball wide.
Guardiola's rotation policy backfires
Raheem Sterling was not involved while Guardiola opted to start with both Silva and defender John Stones on the bench.
"The rotations are good when you have a successful result but, when they are not, always we miss those people," said the City boss.
"It is almost impossible to play the same 11 players. When you have one game a week you can play the same 11 players no problem. We have a lot of games, we have to make a rotation - if not it will be so difficult."
Stoke display deserves plenty of credit
The Potters are still to beat a top-eight Premier League team this season but the performance that earned them this point deserves plenty of credit.
Mark Hughes said before kick-off that his side would be less open than normal but although they were indeed extremely disciplined at the back, they did more than defend in numbers.
The outcome could have been worse for the home side had Mame Biram Diouf not scuffed an early shot from close range following Gael Clichy's slip.
Bruno Martins Indi and Saido Berahino also had sniffs of goal when City left space at the back, but Stoke's main aim appeared to be a clean sheet and they accomplished that comfortably enough.
They were helped by City's lack of spark for much of the match, but this was still a significant defensive improvement on their last trip to play one of the top four, which ended in a 4-0 defeat at Tottenham last month.
Man of the match - Ryan Shawcross (Stoke)
The commitment and industry of Stoke's entire side stood out but their defensive masterclass was superbly marshalled by Ryan Shawcross, who was a rock at centre-half and helped keep Sergio Aguero, among others, quiet.
'The gap was big and is still big' - manager reaction
Manchester City boss Pep Guardiola: "They defended deep and it was complicated to find the players between the lines. We were there in the last minutes. I don't have regrets about how they ran, how they fought.
"We created a lot of situations for the last pass and sometimes we missed it. When you analyse the chances we had, I don't really remember more than one Stoke chance."
On the title race: "The gap was big and is still big. We have to focus game by game."
Stoke boss Mark Hughes: "Not many teams come here and restrict Manchester City to so few chances.
"We didn't rely on luck. We made our own luck and were difficult to break down. You can see what it meant tonight and that shows the honesty of the group."
Another clean sheet for Caballero - the stats
- Willy Caballero has now kept one more clean sheet for Man City this season (7) than Claudio Bravo (6) despite playing eight games fewer (17 v 25).
- This was the first time Pep Guardiola has drawn a Premier League game 0-0 and his first in league competition since Dortmund 0-0 Bayern in March 2016.
- In fact, this was the first time that Manchester City have failed to score at the Etihad Stadium under Pep Guardiola in all competitions (19 games).
- Manchester City mustered just one shot on target in this game - their lowest tally in a competitive home game since April 2016 v Real Madrid (Champions League).
- Stoke City have scored just one goal in their nine Premier League visits to the Etihad Stadium to face Man City.
City's FA Cup quarter-final with Middlesbrough is on Saturday at 12:15 GMT, then they head to Monaco for the second leg of their Champions League last-16 tie on Wednesday (19:45 GMT). They hold a 5-3 lead from the first meeting in Manchester.
This game was originally scheduled for the coming weekend, so Stoke do not play again until Saturday 18 March, when they host leaders Chelsea (15:00 GMT).
- 15NavasSubstituted forSilvaat 57'minutes
- 42Y TouréSubstituted forIheanachoat 76'minutes
- 17De Bruyne
- 19SanéBooked at 54mins
- 2BardsleyBooked at 24mins
- 15Martins Indi
- 18DioufSubstituted forAfellayat 69'minutes
- 4AllenSubstituted forImbulaat 85'minutes
- 32SobhiBooked at 90mins
- 19WaltersBooked at 84mins
- 9BerahinoSubstituted forWhelanat 79'minutes
- Neil Swarbrick
- Shots on Target
Second Half ends, Manchester City 0, Stoke City 0.
Attempt missed. Kelechi Iheanacho (Manchester City) left footed shot from the centre of the box is close, but misses to the right. Assisted by Kevin De Bruyne with a cross.
Ramadan Sobhi (Stoke City) is shown the yellow card for a bad foul.
Nicolás Otamendi (Manchester City) wins a free kick in the defensive half.
Foul by Ramadan Sobhi (Stoke City).
Attempt missed. Sergio Agüero (Manchester City) left footed shot from the left side of the box is close, but misses to the left. Assisted by Gaël Clichy with a headed pass.
Substitution, Stoke City. Giannelli Imbula replaces Joe Allen.
Jonathan Walters (Stoke City) is shown the yellow card for a bad foul.
Kevin De Bruyne (Manchester City) wins a free kick in the attacking half.
Foul by Jonathan Walters (Stoke City).
Attempt missed. Jonathan Walters (Stoke City) header from the centre of the box is close, but misses the top right corner. Assisted by Phil Bardsley with a cross.
Substitution, Stoke City. Glenn Whelan replaces Saido Berahino.
Foul by Kelechi Iheanacho (Manchester City).
Joe Allen (Stoke City) wins a free kick in the defensive half.
Attempt missed. Nicolás Otamendi (Manchester City) header from the centre of the box is just a bit too high. Assisted by David Silva with a cross following a corner.
Corner, Manchester City. Conceded by Bruno Martins Indi.
Attempt blocked. David Silva (Manchester City) left footed shot from outside the box is blocked. Assisted by Bacary Sagna.
Substitution, Manchester City. Kelechi Iheanacho replaces Yaya Touré.
Corner, Manchester City. Conceded by Erik Pieters.