Ninety two teams set out on the road to Wembley Stadium back in August 2018 and, 93 matches later, just one remains. In the end, it was Manchester City who triumphed under the famous arch, lifting the Carabao Cup for the sixth time.
After a goalless 90 minutes and extra-time, a penalty shoot-out ultimately decided the outcome, and it was Raheem Sterling who slotted home the winning penalty to spark jubilant scenes of celebration.
On an afternoon when playing conditions were perfect, Chelsea manager Maurizio Sarri's squad included places on the bench for Gonzalo Higuain, Olivier Giroud and Callum Hudson-Odoi.
The Italian's opposite number, Pep Guardiola, opted against handing a start to goalkeeper Aro Muric, who played an important role in his side's road to Wembley, with the Final also coming too soon for the likes of injured trio John Stones, Benjamin Mendy and Gabriel Jesus.
The opening exchanges saw the sides size each other up, but it wasn't long before there was a point for debate. With 10 minutes on the clock, N'Golo Kante went down under challenge from Zinchenko as he raced towards goal, but referee Jon Moss - overseeing his first League Cup Final - waved away Chelsea claims.
The first real opening arrived on 22 minutes, when Bernardo Silva clipped a diagonal ball towards Sergio Aguero, which the striker took down on his chest before volleying over the top. Chelsea meanwhile, and in particular Eden Hazard, began to show occasional glimpses of their threat on the counter-attack.
Aguero tried his luck again just before the half-hour mark, after a neat exchange of passes on the edge of the area, but saw a low, deflected strike comfortably saved by Kepa. The Citizens continued to dominate possession, but without testing the Chelsea shot-stopper.
At the other end, shortly before the half-time whistle, Hazard almost produced a moment of individual brilliance after getting away from Kyle Walker and jinking his way into the box, but City recovered to clear the danger.
Nicolas Otamendi then almost inadvertently put the ball beyond his own keeper, heading narrowly wide of the post while trying to cushion Willian's deep free-kick back to Ederson.
The close call left the scores level at the break, with the match still firmly in the balance. Sarri's plan to stifle City was working.
Guardiola was forced into a half-time substitution, with the injured Aymeric Laporte being replaced by Vincent Kompany, who took the captain's armband from Bernardo Silva.
Hazard and Chelsea looked to continue where they had left off after the re-start, with the Belgian bearing down on the City box from the left-hand side, but Otamendi stood his ground and made an excellent challenge to dispossess him.
It was a moment which brought Wembley and the contest to life and, on 56 minutes, City had the ball in the net through Aguero, only for the goal to be ruled out for offside. Moments later, Video Assistant Referee (VAR) confirmed the linesman's call.
Ten minutes later, it was Chelsea's turn to go close, as Hazard breezed past Kompany and into the box before pulling the ball back towards Kante, who had made a good run, but the midfielder's rising effort zipped just over the bar. Ross Barkley too found space inside the area but, like Kante, missed the target.
Chelsea were beginning to look the more likely, and a superb team move almost brought about the opener with 15 minutes remaining. An attack which began in the Blues' half ended with Pedro inside the City area, but the winger opted to pass when it may have been better to shoot.
Both managers took an opportunity to roll the dice with extra-time looming, as Hudson-Odoi joined the action for Chelsea, and Ilkay Gundogan and Leroy Sane coming on for City.
With 90 minutes not enough to separate the sides, and the tension inside Wembley as high as ever, it was time for an additional half an hour.
With extra-time came the allowance of an extra substitution, meaning Higuain and Danilo could come on for Chelsea and City respectively. The striker's hold-up play was evident almost immediately, with the tempo of the game showing no signs of slowing.
Despite the changes, the first period passed without major incident, as the teams continued to cancel each other out. The second, though, so nearly brought a City goal as Sterling got into the box and a goal-mouth scramble ensued, but somehow the ball stayed out.
With three minutes remaining, Sane pounced on a defensive slip to set Aguero away, but Kepa came to Chelsea's rescue. And so to penalties...
In front of the Chelsea supporters, it was Jorginho of Chelsea who stepped up first but his poor effort lacked both power and precision and was saved by Ederson.
Gundogan was first up for City and made no mistake in scoring before Azpilicueta also scored for Chelsea. Sergio Aguero was fortunate to score as his spot-kick as a weak effort went underneath the arms of Kepa.
Emerson drew Chelsea level before Kepa redeemed himself from his earlier error by denying Sane. However, the advantage was handed straight back to City as Luiz’s penalty cannoned back off the post.
Man of the Match Bernardo Silva stepped up and scored, leaving Hazard with the pressure of having to score to keep Chelsea in the game. The Blues talisman did just that with an audacious chip over Ederson.
And so over to Sterling to decide the 2019 final. The Englishman stepped up and confidently put his penalty into the roof of the net to secure the Carabao Cup trophy for Manchester City for the second year running.
The win means Manchester City become only the fourth team to retain the League Cup trophy in consecutive years.
Chelsea: Kepa, Azpilicueta (C), Luiz, Rudiger, Emerson, Jorginho, Kante, Barkley (Loftus-Cheek 90'), Willian (Higuain 95'), Hazard, Pedro (Hudson-Odoi 79').
Subs not used: Caballero, Christensen, Kovacic, Giroud.
Booked: Rudiger, Jorginho, Luiz
Manchester City: Ederson, Zinchenko, Laporte (Kompany 45'), Otamendi, Walker, Fernandinho (Danilo 90'), D.Silva (C) (Gundogan 79'), De Bruyne (Sane 86'), B.Silva, Sterling, Aguero.
Subs not used: Muric, Mahrez, Foden.
Booked: Fernandinho, Otamendi
Man of the Match: Bernardo Silva