Manchester City missed their chance to go six points clear at the top of the Premier League as they were held by a resilient Crystal Palace at Selhurst Park.
City dominated proceedings, twice hitting the woodwork, while defender Aymeric Laporte failed to find the net with the goal at his mercy in the first half.
The result means Liverpool can cut City’s lead to one point by beating Arsenal on Wednesday.
In front of a boisterous crowd, Palace frustrated their opponents although they created little themselves going forward.
A point keeps them 11th as they boosted their own hopes of a top-half finish.
Title chances for Manchester City slip
Eight weeks ago, Manchester City’s lead at the top of the Premier League was 13 points – although Liverpool, in third at the time, had two games in hand. After this draw in south London, the gap is now four points.
Liverpool have one game in hand over their rivals, with the pair still to play each other at Etihad Stadium in April.
Pep Guardiola’s side were motivated from the off against Palace, with Joao Cancelo striking the post from range after 30 minutes and Laporte firing the rebound off target with the goal at his mercy.
Captain Kevin de Bruyne struck the base of the post midway through the second half, while Riyad Mahrez forced Palace keeper Vicente Guaita into a fine one-handed save on the follow-up.
And Bernardo Silva also failed to convert a fruitful opening late on, poking Jack Grealish’s pass across goal narrowly wide on an off-night for City’s forwards.
It was just the second time City have failed to score in the league this season – the first since they lost 2-0 to Palace in the reverse fixture in October.
The champions, who came in to this match having won 16 of their past 18 games, were made to rue their missed chances, and their players cut frustrated figures at the full-time whistle.