Juventus were flying high after their first two group stage matches at the Club World Cup. They had played inferior teams, to be sure, but the 9-1 aggregate score of the first two games had given the Bianconeri some momentum headed into the group finale against Manchester City, needing only a draw to win the group.
But just as Juve exposed the gulf in quality between themselves, Al Ain, and Wydad, City rather ruthlessly exposed the gap between themselves and the Old Lady of Italian football. They opened the scoring early, and after gifting Juve a quick equalizer, stomped on their throats.
They scored four unanswered goals and hardly ever let Juve get out of their own defensive third, let alone their own half. A late consolation locked the score at 5-2, sending Juve into the next round against an old and unwelcome foe.
Igor Tudor decided to rotate heavily in this third and final group game. He ultimately made six changes to his 3-4-2-1 formation, the majority of them further forward. Michele Di Gregorio started in goal, with the same trio of protectors in Pierre Kalulu, Nicolò Savona, and Lloyd Kelly. Alberto Costa remained in the XI at right wing-back, but his bookend was none other than Filip Kostic, making his first appearance for Juve since returning from his season-long loan at Fenerbahce. Manuel Locatelli returned to the starting lineup after injury alongside Weston McKennie, as did Teun Koopmeiners, who partnered Nico González behind Dusan Vlahovic.
Juve wingers Timothy Weah and Samuel Mbangula were dropped from the roster entirely, apparently as a result of their refusal to accept a move to Nottingham Forest.
Pep Guardiola was without Rico Lewis, who was serving a multi-game suspension following the straight red he received in the late stages of their opener against Wydad, while Mateo Kovacic and Claudio Echeverri were out with injury. Ederson started in goal at the base of a 4-1-4-1 formation. Matheus Nunes, Rúben Dias, Manuel Akanji, and Rayan Aït-Nouri. After two sub appearances, Rodri made his first start since his ACL injury in September in front of defense. Familiar foe Tijjani Reijnders, fresh off his big-money move from AC Milan, joined Bernardo Silva in midfield, bookended by Savinho and Jérémy Doku. Omar Marmoush started as something of a false nine up top.
It took less than four minutes for City to start asking questions. Aït-Nouri’s ball across was headed goalward by Silva, who was denied by a smart kick save from Di Gregorio, although the flag came up to nullify the play.
Doku opened the scoring in the ninth minute, taking advantage of horrific defending from Costa to burst into empty space in the left channel. He took one touch to evade a scrambling Kalulu and stroked it into the net.
Vlahovic was presented with a fantastic chance to equalize right away as Costa sought redemption by bombing down the right and putting in a good low ball that the Serbian scuffed about eight yards beyond the far post. But opportunity knocked on the ensuing goal kick, when Ederson badly overhit a pass meant for Silva and instead sent it right to Koopmeiners, who charged in and beat Ederson from an angle at six yards out.
The game was tied, but that was about where the reaction from Juventus ended. City attacked relentlessly, while their press — particular the secondary press, getting the ball back after Juve made their first pass to try to get out of their half — was completely suffocating. Wave after wave of City attacks came at Di Gregorio’s goal, producing three blocked shots and a near miss from Reijnders. But the goal that restored City’s lead was a calamity entirely of their own making.
Savinho worked on the right-hand side and put an underlapping Nunes into the box with an excellent pass. The right-back’s cross was going across empty space, but Kalulu lost all sense of what was around him. A completely unnecessary attempt to put the ball behind for a corner went about as bad as it could possibly go, and instead Kalulu tapped the ball neatly into his own net.
TOPSHOT-FBL-WC-CLUB-2025-MATCH45-JUVENTUS-CITY
This time, there wasn’t any semblance of a response. The dominance continued for the entire half, and Di Gregorio was forced into an excellent save on a bouncing shot by Aït-Nouri four minutes from the break.
Halftime provided only a brief respite, because Erling Haaland was sent into the fray on the restart. The Norwegian ace put himself on the board seven minutes into the half, when Reijnders slipped Savinho behind Koopmeiners. The Brazilian rolled the ball across for Haaland, who was completely free after Savona badly misjudged his location behind him. The striker’s touch was awkward, but it was enough to put the ball into the net.
In need of a way back into the game, Tudor made a triple change, sending Andrea Cambiaso, Khéphren Thuram, and Kenan Yildiz on to try and rescue things. Yildiz hit a long-distance shot within 60 seconds of coming on, only to see it go wide. The young Turk then nearly put the game back on when he dinked a pass that sent Vlahovic clean through the middle, but the striker couldn’t evade a charging Ederson, who raised his right hand to block his attempt to go by.
Three minutes later, the seal was placed on top when Haaland took a long ball from Ederson, cut inside, then slipped a through ball between Kelly and Federico Gatti for Phil Foden into the middle of box. It was a little too long for the substitute, but Kalulu failed in pursuit of the ball and Savinho was right there to tap it back to him, giving Foden an easy pass into the empty net.
The humiliation was complete with 15 minutes to go. Di Gregorio made another excellent kick save, this time on Haaland, and the rebound went all the way out to Savinho 22 yards away. The Brazilian struck the ball first-time and banged it into the goal off the bottom of the crossbar.
In the 83rd minute, Yildiz took advantage of a mistake by Akanji, who bit on a run from Kostic that carried him away from Vlahovic, leaving a huge hole for the pass. This time Vlahovic made no mistake, holding off Nico O’Reilly with his first touch and sweeping it past Ederson with his second.
Juventus FC v Manchester City FC: Group G - FIFA Club World Cup 2025 Photo by Daniele Badolato - Juventus FC/Juventus FC via Getty Images
Juve very nearly embarrassed themselves again in stoppage time when a back pass was sent directly to Haaland, who turned provider for Rayan Cherki, only to see him denied by Di Gregorio with another good save.
The final whistle came as more of a relief than anything else.
LE PAGELLE
MICHELE DI GREGORIO - 7. Odd to see a number this high for a keeper who saw five goals go past him, but the fact of the matter is without some truly excellent saves on his part it could have been seven or eight. He bore no responsibility to any of the goals as a discombobulated defense gave him no protection at all.
PIERRE KALULU - 3.5. Had lots of counting numbers, including a joint team-high four tackles, but was at sea on Foden’s goal, and that own goal ... wow. The lack of awareness there was powerful. It was almost as bad as Gatti’s against Sassuolo a few years ago.
NICOLÒ SAVONA - 5. His lack of experience in this position was laid bare this time against players like Haaland, who ghosted him on that goal early in the first. He did get credited with a last man tackle, but his inexperience against this level of competition was evident. That ankle injury looked nasty.
LLOYD KELLY - 4. Got burned by Haaland on Foden’s goal, and his weakness in defense was pretty generally on display.
ALBERTO COSTA - 3.5. Repeatedly burned by Doku, and his defending on the winger’s opening goal was absolutely atrocious. Did try to help get things back on track after that, but it simply wasn’t enough.
WESTON McKENNIE - 5. Worked hard in the middle of the park, but there wasn’t anything he could do against the overwhelming force he was up against.
MANUEL LOCATELLI - 5. Also worked hard in a Sisyphean task against the City midfield. Couldn’t get through the press to set up any kind of attack.
Juventus FC v Manchester City FC: Group G - FIFA Club World Cup 2025 Photo by Marc Guelber/Sports Press Photo/Getty Images
FILIP KOSTIC - 4.5. The other co-leader in tackles on the afternoon, Kostic still looked a little bit at sea, which is predictable after being away for a year and having barely any familiarity with a team that turned over completely since he last played in this shirt. His move on Vlahovic’s goal was good though.
NICO GONZÁLEZ - 4. Got absolutely nothing done in the CAM role. There’s a question as to whether or not he fits here anymore.
TEUN KOOPMEINERS - 5.5. Did well for the opening goal, but his defending left a lot to be desired and did nothing to help get out of the press and create offense.
DUSAN VLAHOVIC - 4.5. His garbage-time goal was a nice one, but the chance he had to bring Juve back into the game when it was still 3-1 was a huge missed opportunity.
SUBS
KENAN YILDIZ - 6. The only outfield player who was in any way acceptable today. Assisted the consolation goal with a smart pass and should’ve had a second.
KHÉPHREN THURAM - 5. Worked hard but had just as little success as the rest of the midfield. Couldn’t make his trademark runs through midfield because the team barely had the ball.
ANDREA CAMBIASO - 5. Had a key pass but was otherwise pretty invisible.
FEDERICO GATTI - 5.5. His most extended minutes since his injury, still looked a little rusty. Hopefully this shook it off, because he’s going to have to work in the round of 16.
VASILIJE ADZIC - NR. On at the end for a run-out and to get McKennie off the field to avoid a late booking that would’ve suspended him.
MANAGER ANALYSIS
I understood Tudor’s inclination to rotate the team for Thursday’s game. The team was in the round of 16 regardless, and the A lineup had played two games in four days during the middle of a particularly nasty heat wave. Giving guys like Yildiz, Thuram, and Randal Kolo Muani a rest was not a bad idea.
Juventus FC v Manchester City FC: Group G - FIFA Club World Cup 2025 Photo by Daniele Badolato - Juventus FC/Juventus FC via Getty Images
Juve has some depth at the moment, but City are, obviously, one of the deepest teams in the world — one that can rotate their squad and still have a reasonable expectation of beating a lot of teams. That, and the talent gap between the two sides, was evident in a game like this.
Despite the calamity that was this game, I don’t necessarily think that Juve and City are quite as far off as the final score suggests. They did beat them in December, after all. Yes, that team was going through the worst stretch of Guardiola’s time with the club, but that didn’t wipe away the talent those players had, and Juve were able to get over the line. I do wonder, too, as we all have whenever Juventus has had a defensive meltdown over the last eight months, what things might have looked like if Bremer was healthy and available. Alas, that’s a counterfactual that we’ll never find out unless we crack the multiverse some day.
Of course, I’m not saying Juve are as good or better than Manchester City. Clearly, City are the superior team. But Juve are a team that can give them a run on a good day. This was very much not a good day.
One of the big differences in this match compared to the last one? Rodri. He provides a grit and presence in midfield that was clearly lacking when City was going through it last season, and his start on Thursday shows just how critical he is to how Guardiola’s game runs. Tudor simply didn’t have a counter to him, which is why they were hemmed back so damn much. That’s something Tudor will have to find a solution to as the new season approaches.
LOOKING AHEAD
Juventus will face old foe Real Madrid in the round of 16 on Tuesday night at Hard Rock Stadium in Miami. If they were to pull an upset and advance, they would face the winner of Borussia Dortmund vs. Monterrey on July 5 at the Meadowlands in East Rutherford, NJ. If not, they’ll head home for some much-needed R&R before prep for the new season begins.