It wasn't vintage Manchester City, but they did enough to take all three points in a 2-1 win over West Ham at the Etihad Stadium.
In a game where third played fourth, the first half started with an excellent tempo in which both sides threw caution to the wind, creating opportunities where perhaps both could have snatched first blood.
Kyle Walker went close with a low drive from distance that went just wide of the far post, and Michail Antonio bustled and hit the side netting from a tight angle as the two teams jostled for supremacy in the early exchanges.
It would be City captain Ilkay Gundogan who got the vital touch to set his side on the way to three points, prodding home after a Riyad Mahrez cross-shot was deflected by Arthur Masuaku, - a hammer blow for David Moyes' men as they struggled to come back from that particular sucker-punch.
Lukasz Fabianski was called into a double save from Joao Cancelo and then Riyad Mahrez on the stroke of half time, and Ederson had to have strong wrists to parry Declan Rice's long-range effort on 78 minutes.
The visitors came out with more caution in the second half, struggling to retain possession as the hosts pressed for that elusive second goal, which finally came from Fernandinho off the bench, as he finished a wonderful move coming out of the left corner, slotting home his compatriot Gabriel Jesus' cut-back.
Bernardo Silva thought he'd made it three immediately after with a beautiful chipped finish, but the flag denied him getting his name on the scoresheet.
West Ham would get a consolation goal; a wonderful strike off the woodwork from substitute Manuel Lanzini, but it would mean nothing as City played out the rest of the 90 minutes with great composure as the snow fell heavily in Manchester, and the champions can take some confidence with this win going into the Christmas period.
They started the game with promise, looking to get at the hosts in the opening exchanges, but once the first goal went in, David Moyes' side went back into their defensive shells somewhat, allowing City to come onto them with relentless pressure as the first half closed out.
They came out at the start of the second half in a back five shape as their caution translated to a desire just to limit the damage and stay in the game, but when they finally did decide to finally attack again with five minutes, it was too little, too late.
The players were too tired from chasing shadows all game and couldn't muster the energy to give City any real headaches, and spaces began to emerge in the dying embers, as Fernandinho put the game beyond all doubt to double City's cushion.
Lanzini scored a wonderful goal from range to halve the deficit, but one could say that Moyes was too cautious against a City side that weren't at their very best.
Fernandinho of Manchester City celebrates after scoring their side's second goal with Bernardo Silva and Aymeric Laporte during the Premier League match between Manchester City and West Ham United at Etihad Stadium
Image credit: Getty Images
Man City: Ederson 6, Walker 6, Dias 6, Laporte 6, Cancelo 7, Rodri 6, Gundogan 8, Silva 6, Sterling 7, Mahrez 7, Jesus 6, Fernandinho 6.
West Ham: Fabianski 7, Johnson 7, Dawson 6, Zouma 6, Cresswell 6, Masuaku 6, Soucek 6, Rice 6, Benrahma 6, Fornals 6, Antonio 6.
MAN OF THE MATCH - ILKAY GUNDOGAN, MANCHESTER CITY
The silky German was sound in midfield, hardly giving the ball away and keeping the tempo ticking over as City eased to three points.
He led by example as Pep Guardiola trusted him with the captain's armband, and he linked the midfield and the attack brilliantly, making runs in behind the Hammers' defence at times, while at others, he dropped deep to orchestrate as the visitors sat off.
Another exemplary performance from one of City's most reliable players.
Ilkay Guendogan of Manchester City celebrates
Image credit: Getty Images
33': GOALLL!!! City lead, Mahrez cuts inside, shoots, and the deflection falls for Ilkay Gundogan who provides the telling touch, but the main part of the goal is the initial diagonal from Cancelo to Mahrez. What a pass, and a crucial goal for City.
41': Great double save! Well worked again along the edge of the area by City, Cancelo hits it from range and Fabianski parries, and he saves again to stop Mahrez!
78': Good save from Ederson, parrying a rare West Ham shot, this time from the boot of Rice from distance.
90': GOALLLL!!! It's Fernandinho off the bench to slide home for City! Really well worked down the left corner, and Jesus worked it brilliantly to cut it back for his compatriot to finish with aplomb.
90': GOALLL!!! A great finish from Lanzini from range!!! Off the woodwork, out of nothing! 2-1.