Manchester City roared back from a 2-0 half-time deficit to ultimately overcome Crystal Palace with the help of Erling Haaland's first hat-trick for the club.
"They know they will get set pieces," Pep Guardiola warned with a grimly prophetic edge pre-game, "we have to be there from the first moment."
With just 20 minutes on the clock, City had already conceded from two dead ball scenarios. The reigning champions shipped just one set-piece goal across the entirety of last season.
Crystal Palace took a six-minute lead on their way to a famous 2-0 victory at the Etihad Stadium last season. The Eagles needed barely 200 seconds to break the deadlock as Ebere Eze's free-kick bounced off Kyle Walker's shoulder, beyond a wrong-footed Ederson via John Stones' thigh.
Just as City began to find their collective stride, firing the ball around the final third with purpose in an attempt to tease apart Palace's physical and compact block, the visitors struck again.
A sky blue shirt didn't put the ball in their own net on this occasion - Joachim Andersen could take the credit with a forceful header - but City gave Palace another helping hand by leaving the towering centre-back criminally unmarked at a corner.
Patrick Vieira raised a clenched fist in premature celebration as his side left City trailing by two clear goals for the fourth time in their last six league games.
City expectedly enjoyed three-quarters of the ball in the first half but failed to fire off a single shot on target. Eight minutes after the interval, Bernardo Silva rectified that inaccuracy with a deflected effort which scuttled into the bottom corner.
Guardiola introduced Julian Alvarez and Ilkay Gundogan after an hour, shifting into a back-three with Phil Foden and Bernardo providing the requisite width to stretch Palace's obstinant back-five. Within seconds of the rejig, both wingbacks were involved before Foden curled an inviting cross which Erling Haaland attacked, nodding City into the lead.
Having been undone at two set pieces, City responded with an intricate routine of their own in the 70th minute. Stones scuffed his shot but Haaland - once again - was the quickest to react, tapping City into the lead.
As Palace pushed forward in search of an equaliser, City popped the ball around their stretched press. Gundogan cantered into open swathes of green grass before punching a pass into Haaland's feet. Holding off Joel Ward with the ease of an older brother taunting his sibling, City's new number nine completed his hat-trick.
Manchester City vs Crystal Palace player ratings
1. Manchester City (4-3-3)
GK: Ederson - 5/10 - Unable to do much about the close-range efforts which evaded him.
RB: Kyle Walker - 4/10 - Turned away from the set-piece delivery which led to Palace's calamitous opener.
CB: John Stones - 5/10 - Unfortunate to see the ball squirm off his body but did recover his composure to make a couple of important tackles in transition.
CB: Ruben Dias - 4/10 - Failed to marshal his backline at dead balls.
LB: Joao Cancelo - 4/10 - Pulling wide on the left, overlapping Foden and leaving Walker as the inverted fullback, Cancelo's final ball rarely found its target amid the crowded penalty area.
CM: Bernardo Silva - 8/10 - Drifting wide on the right time and time again, Bernardo's velcro-esque close control proved
CM: Rodri - 7/10 - Aggressively and swiftly snapping into a tackle whenever City lost the ball in midfield. Rodri ensured that Palace's threat was limited to set pieces.
CM: Kevin De Bruyne - 5/10 - Roaming around in search of the ball, the Belgian was relentless, if not regularly accurate, in his attempts to thread the needle.
RW: Riyad Mahrez - 4/10 - Held his position out wide but didn't do enough to avoid being included in Guardiola's first round of substitutions.
ST: Erling Haaland - 8/10 - Able to expertly read the bounce and spin of the ball in very little space. Also demonstrated his imperious physical advantages when space did open up.
LW: Phil Foden - 6/10 - Headed City's clearest chance of the first half over the bar but made up for it with a delicate assist.
SUB: Julian Alvarez (61' for Mahrez) - 6/10 - Immediately provided another body in the box for Palace to deal with.
SUB: Ilkay Gundogan (61' for Cancelo) - 7/10 - Took full advantage of the space that opened up as the game wore on.
SUB: Sergio Gomez (84' for Haaland) - N/A
SUB: Cole Palmer (89' for De Bruyne) - N/A
Manager: Pep Guardiola - 8/10 - You can't say he didn't warn his team - and everyone else. Guardiola took matters into his own hand as his tweaks ultimately led to another turnaround.
2. Crystal Palace (5-4-1)
GK: Vicente Guaita - 6/10 - Managed to spark a collective groan from the Etihad stadium each time he laboured over a restart.
RWB: Nathaniel Clyne - 6/10 - Rarely ventured forward in a defence-first-and-only display.
CB: Joel Ward - 5/10 - Clogged up the half-space City love to weave in and out of but was bullied by Haaland.
CB: Joachim Andersen - 7/10 - Given the freedom of east Manchester, Andersen commandingly took full advantage.
CB: Marc Guehi - 6/10 - Alert and alive for so much of City's threat but punished as soon as he let his concentration slip.
LWB: Tyrick Mitchell - 7/10 - Engaged in an enthralling battle with Mahrez as both forward and defender enjoyed success. Unfortunate to be forced off through injury inside an hour.
RM: Jordan Ayew - 7/10 - Despite a permanent scowl hanging across his face, Ayew seemed to thrive in the gritty, defensive discipline Vieira demanded of him.
CM: Cheick Doucoure - 6/10 - Shuttling around in an industrious midfield display.
CM: Jeffrey Schlupp - 6/10 - Quick to jump out of Palace's midfield line to ensure that City couldn't conduct their build-up entirely untroubled.
LM: Ebere Eze - 7/10 - Electric each time he got the ball, rarely failing to wriggle into space.
ST: Odsonne Edouard - 6/10 - Saw little of the ball in a selfless role.
SUB: Chris Richards (57' for Mitchell) - 5/10
SUB: Will Hughes (67' for Edouard) - 5/10
SUB: Michael Olise (74' for Clyne) - N/A
SUB: Jean-Philippe Mateta (74' for Ayew) - N/A
Manager: Patrick Vieira - 5/10 - Employing the same shape which frustrated Liverpool, Vieira's side took their chances efficiently but failed to react to the changes Guardiola implemented.
Player of the Match - Erling Haaland
Source : 90min