Sergio Aguero and Manchester City rediscovered their touch as the champions turned on the style in the second half to win 4-1 at Stoke.
Aguero struck twice as City won for the first time in five Barclays Premier League games to keep some pressure on Chelsea at the top of the table.
Aguero’s first strike in six games since returning from injury was cancelled out by Peter Crouch before the break but he grabbed a second from the penalty spot after James Milner had put City back ahead. Samir Nasri claimed the fourth with a fine strike 14 minutes from time.
The first half was a compelling affair but both sides might have had more than a goal apiece after efforts were ruled out at each end.
Crouch was first denied by an offside flag and Aguero had what would then have been his second chalked off in confusing circumstances on the stroke of half-time.
Handball was the offence, although it was only the faintest of touches and possibly not deliberate.
But City reacted well to the controversy and finally showed some champion quality after a disappointing few weeks by running in three second-half goals.
City ended as the dominant force but Stoke had a large say in the early proceedings.
City did have an early chance but Aguero scuffed a shot when he might have been better leaving it to Fernandinho.
After that Stoke looked the more confident for a prolonged spell with the lively Victor Moses troubling Joe Hart with a well-struck shot.
Crouch, back in the Potters’ starting line-up after a late leveller at Newcastle on Sunday, got his head to the resulting corner but Milner cleared off the line. There were appeals for handball against Milner but referee Lee Mason gave nothing.
Crouch thought he had scored when he pounced on a rebound after Hart parried a Moses effort but the flag was raised.
City survived another scare as Hart beat away a strong effort from Steven Nzonzi and Moses smashed the rebound inches wide.
They were chances Stoke looked likely to rue missing as City seized the lead following a moment of Aguero brilliance in the 33rd minute.
The Argentinian seized on a long clearance and ran at Marc Muniesa and finished with a superb low shot across goal.
But City had not yet weathered the storm and Stoke replied immediately.
Marko Arnautovic curled in a wicked cross from the right and Crouch ducked as he slid in to expertly guide home a firm header.
City thought they had reclaimed the lead just before the interval but controversy erupted as Mason denied Aguero.
Stoke were caught flat-footed as Fernandinho picked out Silva with a lofted ball and the Spaniard turned the ball across goal for Aguero.
Aguero appeared to have an easy tap-in but the ball deflected off a defender and he had to readjust to use his head. After doing so the ball brushed his hand on the way in.
Mason initially seemed to give the goal but Stoke’s players protested and it eventually became apparent the referee agreed something untoward had occurred. It may have been that Aguero had cunningly used his hand but replays suggested that would be a harsh interpretation.
If City felt wronged, they soon put it right. Milner made no mistake with his head as he rose to meet a Nasri cross 10 minutes into the second half.
Milner, whose future beyond the end of the season remains uncertain as contract talks continue, celebrated by mimicking the action of a DJ in front City fans.
Whatever that meant, City appeared to be getting back into their groove.
They went further ahead after 70 minutes as Silva proved too tricky for Geoff Cameron and was pulled down. Aguero clinically dispatched the spot-kick.
Nasri made victory certain six minutes later as he drove at the Stoke defence, checked inside on the edge of the area and fired a shot across goal and in at the far post.
Stoke were beaten although Mame Biram Diouf did threaten on the break and might have had a free-kick after tangling with Eliaquim Mangala – who could have been sent off – but Mason ruled contact accidental.