Manchester City beat Chelsea 4-3 on penalties Sunday to retain the Carabao Cup after a goalless 120 minutes at Wembley in a game overshadowed by Kepa's refusal to be substituted.

The Chelsea keeper appeared to be suffering from cramps after saving a Sergio Aguero shot in the final minutes of extra time, but with Willy Caballero waiting to come on, he refused to leave the pitch.

His stance provoked a furious response from Chelsea manager Maurizio Sarri, who appeared set to walk out of the stadium before changing his mind and returning to the touchline.

Aguero was straight into the action for City, fouled by Jorginho for an early free kick, and was again involved as he got down the right and appealed in vain for a handball after his cross was blocked.

But Chelsea began to settle, and a David Luiz through ball caused problems for Aymeric Laporte before appeals for a foul by Oleksandr Zinchenko on N'Golo Kante were waved away.

Luiz produced two strong clearing headers as City began to press from their left, Raheem Sterling involved, and then Aguero controlled a fine ball from Bernardo Silva but fired a difficult half-volley over.

As the half-hour approached, Kepa dived to hold Aguero's deflected shot, and Luiz went into the book for fouling Bernardo Silva.

Nicolas Otamendi met a Zinchenko cross but was unable to generate enough power to cause serious problems, and City were forced into an early change as Laporte tweaked a hamstring and was replaced by Vincent Kompany.

Fernandinho shot over as the second began, and then Kepa fumbled a City cross but got away with it.

Eden Hazard found space to get into the penalty area but waited too long and was closed down by Otamendi before Aguero had the ball in the net, only for the flag to go up.

Fernandinho was booked for fouling Ross Barkley after the Chelsea midfielder had closed him down, with Luiz then belting the free kick too high.

But after 67 minutes, Chelsea fashioned a chance, with superb work from Hazard seeing him get to the byline to play the ball back to Kante, who steered over.

Four minutes later they had another opportunity, Barkley shooting too high -- but back came City, and after Antonio Rudiger had fouled Bernardo Silva just outside the box and been booked, Kevin De Bruyne wasted the free kick.

With 15 minutes remaining and the game finally opening up, Hazard created space for Pedro, whose cutback was scrambled away.

City brought on Ilkay Gundogan for David Silva and Chelsea made a change as Callum Hudson-Odoi replaced Pedro, and with five minutes remaining De Bruyne made way for Leroy Sane.

With time running out and extra time looming, Jorginho was booked for fouling Sterling as he tried to race clear.

Sarri brought on Ruben Loftus-Cheek for Barkley before City won a late corner, with Sane miscuing, and Otamendi was booked for a scything challenge on Hazard.

Willian whipped in the free kick from the left, Ederson touching it over, and with seconds remaining, a superb turn and pass from Loftus-Cheek seemed to have sent Hazard racing through only for the flag to go up.

Fernandinho, who looked to have suffered a groin strain, was replaced by Danilo, and Gonzalo Higuain came on for Willian as Chelsea made a switch in what was a quiet start to extra time.

Ederson claimed a low Hazard cross into the 6-yard box, and then Jorginho curled wide from the edge of the area as Chelsea began to turn up the pressure.

With 10 minutes of extra time to go, Sterling set up Aguero, who was denied by superb defending from Cesar Azpilicueta, the ball eventually going behind for a corner that Chelsea cleared.

And with three minutes remaining, Rudiger slipped to give Aguero the chance to run to the edge of the Chelsea area, his shot saved by Kepa.

The goalkeeper then seemed to be affected by cramps but would not leave the pitch, and the substitution was eventually abandoned to fury from the Chelsea bench.

As the shootout began, Jorginho's low penalty was saved by Ederson, with Gundogan converting to seal an early advantage for City.

Azpilicueta blasted into the top corner before Aguero saw his penalty somehow squeeze under Kepa's dive.

Emerson kept Chelsea in touch and then Kepa briefly redeemed himself, diving to his right to keep out Sane's kick, only for Luiz hit the post with Chelsea's next penalty.

Bernardo Silva put City on the brink of the trophy, and although Hazard chipped the coolest of kicks into the roof of the net to give Chelsea a glimmer of hope, Sterling smashed in his kick to seal the deal for City.