Manchester City edged out Arsenal at the Emirates to extend their lead to ten points at the top of the Premier League.
Raheem Sterling's early header was enough to secure an 18th straight victory for Pep Guardiola's team, as the England forward outjumped Rob Holding and Pablo Mari to head in his 13th of the season.
After City opened the scoring, the game followed the expected pattern with the league leaders controlling possession. Arsenal grew into it as the game wore on, but the handful of chances fell City's way, as Ilkay Gundogan and Joao Cancelo spurned opportunities to double the lead.
Anyway, let's get into some player ratings!
1. Goalkeeper & defenders
Bernd Leno (GK) - 6/10 - One good stop to deny Gundogan, surprisingly quiet otherwise.
Hector Bellerin (RB) - 6/10 - Unlike his left-sided teammate on the opposite side of the pitch, Bellerin barely got on the ball and spent most of the game sticking close to Sterling - who he did a decent job of keeping quiet for the most part.
Rob Holding (CB) - 5/10 - Inexplicably lost Sterling for the opener. Played a risky game at times, pushing out from the back to try to prevent City from completely owning the ball, with mixed success. Went off for Luiz late on with a suspected concussion.
Pablo Mari (CB) - 5/10 - Classy on the ball but struggled to read the game and win his battles.
Kieran Tierney (LB) - 7/10 - Made a point of breaking out of City's suffocating press and frequently got his side forward. Deliveries were lacking their usual sharpness but an encouraging return to the team nonetheless.
Mohamed Elneny (CM) - 5/10 - Lacked the quality and composure for an engine room that demanded perfection.
Granit Xhaka (CM) - 6/10 - Game appeared to pass him by but he was neat on the ball and kept Arsenal ticking over with a battling display
Martin Odegaard (AM) - 5/10 - Looked sharp on the few occasions the ball reached him but largely marked out of the game by Fernandinho before his withdrawal.
Nicolas Pepe (RW) - 6/10 - Fine for the most part but didn't really impose himself. Brought off for Alexandre Lacazette in a tactical shake-up by Arteta.
Pierre-Emerick Aubameyang (CF) - 5/10 - Definitely one of his poorer games in an Arsenal shirt as he struggled to have any meaningful impact on Arsenal's handful of promising attacks.
Bukayo Saka (LW) - 7/10 - Played like that kid in the playground who knows he's better than everyone else on his team, demanding the ball and running with it every time Arsenal got a sniff of possession.
Emile Smith Rowe (Odegaard, 73) - 6/10
Alexandre Lacazette (Pepe, 73) - 6/10
David Luiz (Holding, 81) - N/A
Dani Ceballos (Elneny, 86)
5. Goalkeeper & defenders
Ederson (GK) - 6/10 - Made some nice passes but barely had to put a hand on the ball. Didn't face a single shot on target.
Joao Cancelo (RB) - 7/10 - Right-back on the team sheet but played as more of a midfielder in practice, drifting inside to crowd out the central areas when City had the ball - which was virtually always. Should've scored late on after skinning Mari but sent it wide from close range.
John Stones (CB) - 6/10 - Often moved out to right-back in City's fluid shape. Overlapping isn't one of his strengths, surprisingly. Untroubled at the back.
Ruben Dias (CB) - 6/10 - Largely untroubled, won most of his battles against Aubameyang and kept things neat and tidy at the back.
Oleksandr Zinchenko (LB) - 6/10 - Reasonably quiet but didn't do much wrong of note.
Fernandinho (DM) - 7/10 - Virtually immaculate in everything he did - even if none of it involved actually running.
Ilkay Gundogan (CM) - 7/10 - Take our positions with a pinch of salt from this point onwards as Gundogan was one of four players who took it in turns to drift into the centre-forward role. Another good performance from the German who looks a shoo-in for City's player of the season at this rate.
Bernardo Silva (CM) - 5/10 - By far the quietest of City's midfielders. Looked out of place in a deeper midfield role than he's used to.
Riyad Mahrez (RW) - 6/10 - A constant threat down the right, though he did fade out of the game as it wore on. Glorious assist for Sterling.
Kevin De Bruyne (CF) - 7/10 - Calling him a centre-forward is a little reductive for the role he actually did, which mostly consisted of drifting around the pitch to pull Arsenal out of shape. Lasted only an hour of his return to the team before being replaced by Gabriel Jesus.
Raheem Sterling (LW) - 7/10 - He's been sharper with his passing and end product but came up with the moment that counted in the first half as he leapt like a salmon to head past Leno.
Gabriel Jesus (De Bruyne, 62) - 6/10