There are 78 minutes played. Deadlock still unbroken, the majority of chances going your way, but the ball just will not fall kindly. In those moments, you need someone to step forward.
Step forward, Bernardo Silva.
For someone without a premier league goal all season, his finish into the top corner from 18 yards was simply brilliant, and gave City a lead that was doubled in the final minute with an Ilkay Gundogan penalty.
Silva himself had a fantastic chance to score after only three minutes, as a header across goal by Rodri from a de Bruyne corner found the winger unmarked at the back post. In-form Emiliano Martinez got down brilliantly though to turn the ball away with his foot, with John Stones’ follow-up deflecting over the bar.
The game was end-to-end, although clear chances were at a premium. Villa’s best moment came as Barkley led a 3v2 counter, but he completely messed up the final ball with Jack Grealish unmarked in the penalty area.
Villa had defended brilliantly after their early scare, but right on halftime they should have fallen behind.
Kevin de Bruyne led a quick counter down the right, and spotted Phil Foden alone on the left. The pass looked impossible, yet de Bruyne somehow threaded the needle. Foden controlled well, but hit his shot into the diving Matty Cash when he probably should have scored.
Half time: Manchester City 0-0 Aston Villa
City started the second half with more intent, pinning Villa back inside their box and starting to create chances. Gundogan curled just over, before a wonderful Joao Cancelo surge was spotted by de Bruyne, with the fullback cutting inside but seeing his shot strike the bar.
City were putting dangerous balls into the box regularly now, and Villa were lucky to see Gundogan slide a shot wide after several ricochets took the ball from unmarked City attackers. Twenty minutes into the half, however, and Villa suddenly found themselves on top.
Bertrand Traore had seen a 20 yard attempt saved by Ederson at the start of the half, and Douglas Luiz came even closer from a similar position following a good block by Oleksandr Zinchenko. Luckily for City, Ederson was alert to push away his driven shot.
Minutes later, another City corner almost saw the opening goal. Gundogan’s near post header was saved but spilled by Martinez, and Stones on the follow-up saw the ball break free. Somehow, it deflected through the legs of Gundogan, barely a few yards out, when any contact would have left him with a tap-in.
The chances were now coming thick and fast. In the space of only a few minutes, both teams were twice left wondering how they had not scored.
Quick play by Villa saw Ollie Watkins in down the right, with Traore unmarked at the back post. When Watkins played the pass, it looked like a certain goal, but that was to reckon without Ruben Dias who somehow deflected the ball past the winger and also past his own post.
Straight down the other end, substitute Riyad Mahrez hammered a low cross into Tyrone Mings at the front post. The ball seemed certain to be going in at the far post, but instead dribbled centimetres wide.
On Villa’s next attack, Jack Grealish did brilliantly to find John McGinn unmarked in the box, only for the midfielder to completely miskick from a fantastic position. As City won a corner from the clearance, Gundogan’s cross hit a Villa head and somehow bisected the head of Gabriel Jesus and the Villa post perfectly.
It was anyone’s game. Fittingly, when the goal arrived, it was a screamer. It was, however, not without controversy.
A long high ball from deep saw Mings beneath the ball and with Rodri approaching him from behind, around 20 yards offside. Instead of heading clear, Mings chested the ball down and then kicked the ball into Rodri behind him, perhaps mistaking the position of the midfielder.
As Villa appealed for offside, Silva picked the ball up and ran at the Villa defence, before cutting onto his left and firing a bullet into Martinez’s top corner. The goal, correctly, stood. Mings had deliberately played the ball- indeed, twice- so Rodri was no longer counted as offside.
Villa manager Dean Smith clearly disagreed. Referee Jon Moss first booked him, then sent him off as he continued to remonstrate.
City found time for a settler, as Gabriel Jesus’ back post header clearly hit the raised arm of Cash and resulted in the instant awarding of a penalty. Gundogan stepped up, and calmly sent Martinez the wrong way to make the game safe.
At fulltime, and for the first time all season, City found themselves at the top of the table. Villa remain 11th, but their fantastic performance and quality players will surely see them at least challenging for Europe come the end of the season.
Full time: Manchester City 2-0 Aston Villa
Man of the Match: Phil Foden
There were excellent performances on both sides, but Foden was the most involved player of the match and was desperately unlucky to finish with neither a goal nor assist. He is 20. Imagine just how good he is going to be.