Sergio Aguero scored twice in two second-half minutes to help Premier League leaders Manchester City fight back to beat Burnley and reach the FA Cup fourth round.
A John Stones mistake let in Ashley Barnes to give Burnley a surprise lead.
However, Aguero levelled from a quickly-taken free-kick and made it 2-1 from Ilkay Gundogan’s back-heel.
Leroy Sane ran on to David Silva’s pass to add the third before Bernardo Silva slotted the fourth into an empty net.
City’s win stretched their domestic unbeaten run to 26 games this season and keeps alive their chances of winning four trophies.
It is 32 games and 258 days since City were last beaten in the league or either domestic cup – by Arsenal in their FA Cup semi-final on 23 April 2017.
That defeat ensured City boss Pep Guardiola would end his first season in English football without a trophy – the first campaign he had failed to secure silverware in his managerial career.
This season is shaping up to be very different, with this impressive recovery keeping City in all four competitions and in with a chance of completing an unprecedented quadruple.
As well as being in the hat for round four of the FA Cup, City are 15 points clear at the top of the Premier League, in the semi-finals of the Carabao Cup and the last 16 of the Champions League.
Aguero comes alive to turn game around
Guardiola said afterwards that it was “an honour” to have Aguero in his side.
The Argentinean was reportedly unhappy at City before Christmas because of his lack of opportunities in big games, but following the win over Burnley his manager said: “Both goals were amazing – the finishing, and the assists. The first one was clever and quick, and the second one was a magnificent assist, then the dribbling and good finishing.
“I have to say is an honour to have Sergio under my command.
“He is the kind of player who always wants to play, so I can understand that sometimes he is sad when he doesn’t play, but I want him to be happy.”
With Gabriel Jesus out for up to two months, Aguero is City’s only fit striker and the problem he is facing might be his workload rather than whether he is left out.
On this evidence he can carry City’s hopes for the next few weeks, after taking his tally to 19 goals for the campaign and overtaking Raheem Sterling as their leading scorer.
Aguero was virtually anonymous in the first half, shackled by Burnley’s organisation and sheer numbers at the back, but was unstoppable after the break.
In the space of 94 seconds, his goals turned the game on its head and he got them because of his alertness, movement and calmness in front of goal.
Burnley hopes quickly unravel
At half-time, Burnley’s hopes of a first competitive away victory against City for 55 years were looking good.
They had posed little threat other than when Barnes walloped his shot past Claudio Bravo after running clear but, crucially, neither had City.
Guardiola’s side had hit the woodwork through David Silva early on but had not managed a shot on target and were struggling to find any way through Burnley’s massed defence.
That changed after the break and, although Clarets boss Sean Dyche was angry that Gundogan was able to take the free-kick that led to Aguero’s opener before his players were ready, he was just as unhappy at the way his side collapsed.
“I am bound to be aggrieved by that because I think sometimes in football the rule might be the rule, but there is a common-sense moment, especially from experienced referees,” Dyche said.
“So I am bound to be aggrieved by that, but the next minute and a half was my biggest gripe. We looked a bit punch-drunk, we didn’t clear our lines on two occasions, our shape went a little bit and teams like this have the power to almost smell that moment.”
They lost the defensive discipline that had frustrated City for so long to allow Aguero to quickly score a second and unravelled further before the end.
Sane and Bernardo Silva added further goals on the break but City had the chances to make the final scoreline even more emphatic.
Manchester City host Bristol City in the first leg of their Carabao Cup semi-final on Tuesday (19:45 GMT), then travel to Anfield to play Liverpool in the Premier League on Sunday (16:00 GMT). Burnley hit the road again next weekend, playing Crystal Palace on Saturday (15:00 GMT).