Last weekend footage of a Sheffield United supporter engrossed in a book at 7-0 down went viral and before kick-off here a fan was turning the pages of a title called Best New Horror. For Pep Guardiola, observing events from the directors’ box because of a one-match touchline ban, it was probably something close to that as Manchester City suffered a shock defeat at Wolves, their flawless start to defending their crown coming to an abrupt end. The only reading material Guardiola is likely to consume in the next 24 hours is his staff’s analysis of why things unravelled here.

A couple of minutes before kick-off Guardiola took his position in the front row of the executive area, sandwiched between Manel Estiarte, the head of player support, and Txiki Begiristain, the director of football. It was from there where Guardiola clenched both fists when Julián Álvarez pulled City level with a stunning free-kick, whipped into the top corner. José Sá, the Wolves goalkeeper, got his right hand to it but was powerless to prevent the ball spinning into his net.

It was in the stands where Guardiola looked on from sternly after Wolves went in front inside 13 minutes via a Rúben Dias own goal, and when they regained the lead midway through the second half courtesy of Hwang Hee-chan. Kyle Walker tried in vain to head clear on the line.

A fortnight ago Wolves blew Liverpool away in the first half here only to crumble in the second and in their first game of the season, at Old Trafford, they departed empty-handed despite being the superior team. Even in midweek they caved, squandering a two-goal lead at Ipswich as they exited the Carabao Cup.

So the question on the lips of supporters here at half-time, at which point they led 1-0, was: could they really hold on against the champions? When Álvarez sent a wicked free-kick into the top corner after João Gomes was penalised for bumping Oscar Bobb over, 20 yards from goal, another capitulation – given City’s might – seemed a distinct possibility.

Hwang Hee-chan scores past Ederson to put Wolves 2-1 ahead

Hwang Hee-chan scores past Ederson to put Wolves 2-1 ahead. Photograph: Matt McNulty/Getty Images

But Wolves, who invariably had to ride a couple of waves of sustained City pressure, including six minutes of second-half stoppage time, were stout in defence and smart in attack. Rayan Aït-Nouri enjoyed a fine game at left wing-back before departing to a warm ovation, ensuring Walker spent much of this game heading towards Ederson’s goal, and Pedro Neto was again his superb, his direct running the catalyst for the opener. Neto whizzed past Nathan Aké, one of two changes from City’s last league match, and Dias inadvertently diverted the ball into the City net.

It was a Molineux return for Matheus Nunes, signed by City for £53m at the end of last month, to forget. Nunes, whose every touch was heavily jeered by the home support, was replaced by Bobb at half-time.

“Nunes, what’s the score,” came the riposte from the delighted Wolves fans at the final whistle. But the atmosphere among the Wolves support at half-time seemed a little muted, one fan suggesting they were stunned into silence. Gomes and Mario Lemina racked up some mileage in midfield and who was confident Craig Dawson would totally subdue Erling Haaland?

City, who named only eight substitutes, including two goalkeepers, succumbed to their first league defeat since May, their second setback in the space of four days having lost to Newcastle in the Carabao Cup in midweek. Wolves’ winner was typical of the way they went about attacking this game. Nélson Semedo flew down the right flank and his cross, deflected via Aké, located Hwang, whose initial shot was blocked by Dias. But Hwang leathered in at the second attempt.