Liverpool rescued a late point away to Man City, a result which blows the title race wide open. Both Arsenal and Tottenham are now capable of taking the top spot in the league if they win this weekend, though Tottenham would also need Arsenal to lose while overturning a huge goal difference.
A very fast-paced start to the game saw chances fall for both sides, but Man City certainly looked the more likely to get themselves ahead in the opening exchanges.
A calamitous pass from Alisson gave Phil Foden a great opportunity to give his side the lead, but his shot was comfortably dealt with in the end by the Brazilian.
A flurry of chances for both sides followed, including two golden opportunities for Darwin Nunez to give his side a lead but he failed to convert on both occasions.
The deadlock was eventually broken and it was Man City who took a deserved lead after a tidy finish from Erling Haaland, who tucked the ball below Alisson.
Liverpool continued to create chances after going behind but ended up narrowly surviving a late surge of chances from the hosts - as they looked to extend their lead before half-time.
The second half set a far slower pace to the game but did see Liverpool with some of their best spells in the game.
Despite having some spells of dominance, Jurgen Klopp's side looked vulnerable on the counter and survived a few scares, including a wayward effort from Julian Alvarez.
City thought that they had put the game to bed after the ball was tucked home by Ruben Dias, though Liverpool were relieved as a foul was awarded after a push on Alisson.
Not too long later, the visitors found themselves level after a rapid counter-attack which ended with a thunderous strike from Trent Alexander-Arnold against the run of play.
The hosts piled on the pressure for the remainder of the game and created chance after chance, but were unable to capitalise on this as the game ended in a 1-1 draw.
Story of the game
Despite an abundance of injury concerns during the international break, Pep Guardiola had an almost fully fit squad to choose from going into this game and made just a single change, as Josko Gvardiol dropped to the bench in favour of Nathan Ake.
For the visitors, Jurgen Klopp made two changes from the side who cruised past Brentford before the international break, which included a first Premier League start for Curtis Jones since his red card against Tottenham back in September.
The game started at an electrifying pace, with Man City carving a handful of threatening chances inside the opening couple of minutes - but they were unable to capitalise on their strong start.
The biggest chance of the game was gifted to Phil Foden by Alisson after the Brazilian misplaced a pass directly to the Englishman on the edge of the penalty area.
Thankfully for all those in red, Foden's eventual shot was a somewhat tame effort and was comfortably dealt with by Alisson, minimising the impact of his earlier error.
Liverpool had a great chance to take the lead after a cross by Mohamed Salah found Darwin Nunez in the 16th minute. The Uruguayan headed it goal-wards, but the lack of power on the header enabled Ederson to make a seemingly comfortable, though vital, save.
Nunez had another great chance just moments later after being played through one-on-one with Ederson, but he took a heavy first touch and was unable to get a shot away.
Once again Liverpool gifted a chance to the hosts after Jones took too long with the ball in his own box and was forced to play it back to an already under-pressure Alisson. The Brazilian was just about able to get it away, despite Haaland closing him down - which kept the score level.
The visitors' defence could only keep the game level for so long though and, a short while later, Haaland opened the scoring after a great pass from Ake which saw the Norwegian slot the ball beneath Alisson.
It was a landmark goal for the 23-year-old too, as it saw him become the quickest player to score 50 goals in Premier League history - doing so in just 48 games. The previous record was 65, held by Andy Cole - so it is safe to say that the record has been obliterated.
Following the goal Liverpool did start to create a few more chances, but never really looked close to finding an equaliser, as City defended well.
The visitors were given something of a let-off shortly before the break as City broke on a dangerous counter-attack. Jeremy Doku played it wide to Julian Alvarez, but the Argentine's cross went beyond the reach of Haaland.
Klopp's side enjoyed a spell of possession before the break but were unable to penetrate the strong City defence, and the referee signalled for half-time with the host holding onto a narrow, but deserved, lead.
Neither manager saw any reason to look towards their bench at the interval and, perhaps predictably, the second half started at a much slower pace than we were treated to at the start of the game.
Liverpool started the half much better than they had ended the last and were creating some promising chances, but never really looked like scoring.
The Reds had looked vulnerable on the counter and they were almost made to pay for this as the ball fell to Alvarez on a counter-attack. In a relief for the visitors, however, the World Cup winner's shot went high and wide.
Having clearly seen enough, Klopp decided to make some substitutions just nine minutes into the second half as he looked to change the game in Liverpool's favour.
The changes seemed to have worked as they enjoyed their best spell of the game from here but were still unable to properly test the City defence and, more importantly, Ederson.
The 65th minute saw an incensed Rodri appeal for handball after his shot was deflected wide but, after a very brief Video Assistant Referee (VAR) check, his claims were rightly shut down.
This incident also felt as though it signalled the end of Liverpool's period of control in the game, with City comfortably back on top.
Just moments later the hosts thought that they had found a second goal, to put the game to bed, but Ruben Dias' effort after a scramble in the box from a corner was ruled out for what felt like an admittedly soft foul on Alisson.
In the 79th minute, Alisson was called to action once more and pulled off a phenomenal save to deny Haaland, and to give his side a lifeline in the game.
It would prove to be a vital save too as, just seconds later, Liverpool found themselves level after a counter-attack which culminated in a powerful strike from Alexander-Arnold, who fired the ball past Ederson.
As we neared the end of the game, Man City looked the likelier to find a winner but, despite some threatening chances, were unable to get back in front - and the game was brought to a conclusion and finished 1-1.
Player of the match - Bernardo Silva
Bernardo Silva may not have scored or assisted, but still put in a performance of the highest level.
The Portuguese midfielder was instrumental in City's midfield and played some simply exceptional passes at times, as well as utilising his agility to beat midfielders as he looked to carve chances for his side too.
Having been heavily rumoured with a move away from Manchester back in the summer, his manager, teammates and fans will be very glad, now more than ever, that he ultimately stayed at the club.