Kevin De Bruyne came off the bench to inspire Manchester City to a 3-2 comeback victory over Newcastle as Oscar Bobb snatched a later winner.
City were trailing 2-1 at St James’ Park when De Bruyne was sent on as a 69th-minute replacement for Bernardo Silva, but he scored within five minutes before setting up fellow substitute Bobb to snatch victory in stoppage time at the end of a thrilling encounter.
Bernardo Silva had given the visitors an early lead with a cheeky flick in front of a crowd of 52,198, but stunning finishes from Alexander Isak and Anthony Gordon had the Magpies scenting victory until the Belgium international’s introduction.
The win lifted City, who dominated for long periods but were vulnerable on the counter, into second place in the Premier League table above Aston Villa, who play on Sunday.
Eddie Howe’s men thought they had got off to a fine start when Kieran Trippier lifted the ball over the top for Isak to cross for Sean Longstaff to fire home, but a late offside flag ended the celebrations while City goalkeeper Ederson needed treatment after colliding with Kyle Walker.
Miguel Almiron charged down the ailing keeper’s hurried clearance soon after, but neither he nor Gordon were able to take full advantage with the visitors in disarray.
City’s problems grew seconds later when Ederson had to leave the field to be replaced by Stefan Ortega.
However after a shaky start, Pep Guardiola’s side settled into their slick passing game, although Ruben Dias did just enough to put off Isak in front of goal after Trippier had played Miguel Almiron in behind full-back Josko Gvardiol once again.
Silva should have given City a 17th-minute lead, but blazed over after Mateo Kovacic’s attempt from Jeremy Doku’s run had been blocked.
The Portuguese playmaker made amends nine minutes later with an audacious flick to convert Walker’s cross, with Newcastle appealing in vain for a foul by Dias on Gordon during the build-up.
Phil Foden fired wide with Doku once again the provider and Martin Dubravka acrobatically turned Silva’s strike on to his crossbar.
Rodri had to come to Ortega’s rescue after Isak had blocked his attempted clearance, before City came close again when Julian Alvarez forced Dubravka into a solid 34th-minute save.
However, the home side were level within seconds when, after Fabian Schar had dispossessed Doku, Bruno Guimaraes played in Isak and he cut inside Walker before curling a superb shot past Ortega and inside the far post.
The home fans were still celebrating when Dan Burn picked out Gordon in space on the left and he came inside on to his right foot to drill the ball past Ortega’s outstretched hand and into the net.
Ortega spared his side further punishment when he denied Isak one-on-one after Trippier and Lewis Miley had combined down the right.
City dominated possession at the start of the second half as they attempted to restore parity, but struggled to find a way through the massed ranks of black-and-white shirts.
Dubravka palmed away Alvarez’s 52nd-minute free-kick and claimed Foden’s skidding drive six minutes later, but he needed the help of Guimaraes to keep out Rodri after Walker had surged deep into enemy territory before pulling the ball back.
The Slovakia international repelled Alvarez’s strike and then safely pouched Kovacic’s deflected attempt, prompting Guardiola to send on De Bruyne for Silva with 21 minutes remaining.
De Bruyne’s first touch saw him hit the defensive wall with a free-kick before Alvarez shot wastefully over in the ensuing melee.
Dubravka was beaten with 16 minutes remaining when De Bruyne collected Rodri’s pass and steered a low shot past him and into into the bottom corner.
And the final twist arrived in stoppage time when Bobb controlled De Bruyne’s cross superbly and stabbed past Dubravka to clinch victory.