Toothless Manchester City missed the opportunity to move past second-placed Tottenham as they were held to a thoroughly underwhelming 0-0 draw at home to Stoke City.
Pep Guardiola's men went into the match on the back of four successive Premier League wins, but in front of a muted crowd at the Etihad Stadium they flattered to deceive, rarely looking a danger before David Silva's introduction in the 57th minute.
Such was their lack of craft in the Spaniard's initial absence, at no point in the first half did the hosts look like breaking the deadlock, as they struggled to craft any clear-cut opportunities, while a significantly more purposeful Stoke often faltered with their final pass.
City's approach play had far more urgency about it in the second half and Sergio Aguero - captain for the day - became more prominent, though even he could not break through Stoke's stubborn defence.
Silva - introduced for the ineffective Jesus Navas - spurned a glorious chance 18 minutes from the end and did make a big difference to City's attacking play.
But ultimately Guardiola introduced Silva too late and Stoke held on for a draw despite City's desperate late onslaught.
Stoke were much quicker out of the blocks than their hosts and should have taken an early lead through Mame Biram Diouf when the Senegal forward scuffed a first-time effort straight at Willy Caballero from Erik Pieters' cross.
The visitors continued to look bright in attack and caused problems again in the 15th minute.
Ramadan Sobhi cleverly turned Nicolas Otamendi on the left side of the area and darted towards the danger zone, but Bacary Sagna made a vital intervention before Diouf could pounce.
Diouf was then involved at the other end shortly after, tracking the run of Leroy Sane and producing a marvellous last-ditch tackle to deny him a clear run at Lee Grant and the Stoke goal.
Otherwise, Stoke did a fine job of keeping City at bay, with only an Aleksandar Kolarov free-kick - which Grant saved comfortably - troubling them.
City attacked with more intent after the break and crafted a good opening early on, but Aguero saw his 20-yard effort deflected just over after being picked out by Sane.
The in-form German winger then went close with a chance of his own in the 60th minute, receiving Kevin De Bruyne's cutback and blazing over from 12 yards as Silva's entrance injected a little more urgency to City's attack.
Silva went close twice in quick succession as the match approached its final 15 minutes - first agonisingly missing the bottom-right corner from just inside the box, before drilling wide of the opposite post from distance.
Aguero almost stunned Stoke at the death when slipped into the left side of the box, but the Argentinian could only find the side-netting as Stoke secured a solid point.