AC Milan vs Bari Timeline: How the Coppa Italia Clash Actually Unfolded
ac milan vs ssc bari timeline
AC Milan vs Bari Timeline: How the Coppa Italia Clash Actually Unfolded
You know that feeling when you miss a match live, then have to piece together what actually happened from ten different apps? Yeah. Annoying. Let’s just do it properly, one clean timeline, so you don’t have to hunt around.
This one’s the AC Milan vs Bari Coppa Italia first round tie, played on the 17th of August 2025.
The Basics First
San Siro, packed out, 71,061 fans in the stands. That’s a proper number for a first-round cup tie, honestly, and it says a lot about the energy Milan fans bring even for the season opener.
Kick-off came at 19:15 UTC, part of the Coppa Italia’s first round, the very start of Milan’s 2025/26 campaign. Final score: AC Milan 2, Bari 0. Referee Alberto Arena took charge of the match.
Pre-Match: A Big Night at San Siro
Before a ball was even kicked, there was already a proper occasion brewing. The Rossoneri unveiled seven new signings to the crowd before kick-off, which is always a nice bit of theatre for supporters, a fresh squad, a fresh season, that first-night buzz you only really get at the season opener.
Milan lined up in a 3-5-2 shape: Maignan in goal, Pavlovic, Gabbia, and Tomori across the back three, Estupiñán and Saelemaekers as wing-backs, Loftus-Cheek, Ricci, and Fofana through the middle, with Leão and Pulisic leading the line.
Bari set up in a more traditional 4-3-3, ready to make life difficult for the home side.
First Half: Milan Take Control Early
14th minute — GOAL, Milan 1-0. Rafael Leão opened the scoring, and it wasn’t even his usual finish, honestly. This one came off his head, assisted by a Tomori cross. Worth noting, that’s actually only his fourth headed goal in all competitions for Milan, out of 71 total goals. Rare moment, that one.
Shortly after scoring, though, Leão had to leave the pitch with a physical problem. Bit of a sour note on an otherwise good night for him personally, and it cast a small shadow over the rest of the match, honestly, the kind of “hope it’s not serious” moment every fan recognises.
Before that goal, Bari actually started brightly. Milan’s first real chance fell to Fofana, saved by Cerofolini in the Bari goal. Not a one-sided procession from minute one, in other words, Bari had their moments of pushing forward early on.
25th minute — Pulisic denied by the bar. Chris came close to doubling the lead, only for the crossbar to deny him. These little near-misses matter for the story of a match, I think, they build the tension even when the eventual outcome ends up fairly comfortable.
30th minute — Cerofolini’s second big save. Another good stop from the Bari keeper, this time denying Fofana again. Credit where it’s due, honestly, Cerofolini kept his side in the tie for a good chunk of the first half through a few sharp saves.
At the other end, Maignan also produced a strong stop of his own, keeping out a long-range effort. Halftime score: Milan 1, Bari 0.
Second Half: Pulisic Doubles the Lead
48th minute — GOAL, Milan 2-0. Straight after the restart, Pulisic got his reward. A neat finish following a one-two with Santiago Giménez, and just like that, Milan had breathing room.
Saelemaekers stayed heavily involved after the goal too, going close again shortly afterwards with a left-footed effort. He was arguably Milan’s most dangerous outlet for large stretches of the second half.
66th minute — Modrić and Jashari debut. A genuinely notable little footnote here. Luka Modrić and Ardon Jashari both came on to make their competitive debuts for the club in this match. That’s a proper moment, honestly, a new signing’s first appearance always carries a bit of extra weight, even in a routine cup tie.
Modrić had his own moment shortly after coming on too, a double feint in the box before a right-footed effort was saved by Cerofolini. Still finding his rhythm, but a promising glimpse.
Late substitutions. Noah Okafor replaced Alexis Saelemaekers, and Yunus Musah entered the fray for the closing stages as well. Bari made their own changes throughout, including Alessandro Tripaldelli coming on for Mehdi Dorval.
Stoppage time. A few final half-chances came and went, Giménez and Okafor both threatened late on, and Fofana had a blocked effort from outside the box in the fifth minute of added time. But the scoreline held. Four minutes of stoppage time were added in total, and Milan comfortably saw the match out.
Full time — AC Milan 2, Bari 0.
The Numbers Behind the Result
Milan dominated the underlying stats, honestly, not just the scoreline. 64.7% possession, 24 total shot attempts to Bari’s 6, and 5 shots on target compared to Bari’s solitary effort. Twelve corners to one, too. It was a genuinely one-sided performance in terms of control, even if the scoreline stayed relatively tight at 2-0.
Christian Pulisic’s goal was also part of a bigger personal milestone, honestly worth mentioning. Since joining Milan in 2023/24, he’s now the only Serie A player with at least 30 goals and 20 assists across all competitions in that span. That’s a genuinely elite output for a winger.
What It Meant for the Season Ahead
The win booked Milan’s place in the second round of the Coppa Italia, a solid, professional start to their 2025/26 campaign. Attention then turned quickly to their next fixture, a must-win match against Cremonese.
Final Thoughts
Reading a match timeline after the fact never quite replaces watching it live, honestly, you lose the tension, the crowd noise, the little moments of doubt before a goal goes in. But laid out step by step like this, it’s a pretty clean story: an early Leão header, a nervy injury blow, a comfortable second-half finish from Pulisic, and two notable debuts thrown in for good measure. A tidy, professional night’s work for the Rossoneri.
Useful links: