Our pre-match read
AC MilanvsAtalanta
Win Probability
57%23%19%
Home winDrawAway win

For an hour, this looked like Milan's night without much argument. Then Atalanta remembered who they are, and San Siro got nervous. The Rossoneri ultimately held on 3-2, but the margin felt slimmer by the final whistle than the scoreline suggests.

Milan were the better side early and took their chance when it came. Gonçalo Ramos stepped up from the spot in the 24th minute and converted — composed, no drama. That goal set the tone for a first half Milan largely controlled, with 56 percent of the ball and a passing game that kept Atalanta chasing shadows.

Two minutes before the break, Rabiot made it two. Diego Moreira picked out the Frenchman, who finished cleanly — and then, in a quirk of timing, picked up a yellow card in the 41st minute, just before that goal registered on the board. He'll want to manage that booking carefully in the coming weeks.

Milan Pull Clear

The third came early in the second half and felt like the match-winner the moment it went in. Rabiot, now operating as the creative engine of this Milan midfield, turned provider — his delivery found Mario Gila, who headed home in the 57th minute. Three goals, two of them with Rabiot's fingerprints on them. Qué partido from a player who's taken his time settling in Serie A.

Atalanta, though, weren't done. Gianluca Gaetano pulled one back in the 66th minute, finishing off a Nicola Zalewski assist, and suddenly the visitors had a foothold. Éderson was booked two minutes later — the kind of yellow that tells you a team is trying to impose itself — and the game shifted.

Nikola Krstovic made it 3-2 in the 81st minute, Raoul Bellanova the provider, and the final ten minutes were genuinely tense. Atalanta finished with 12 shots to Milan's 11, which tells you something about how the closing stages went. Milan's goalkeeper had to make three saves on the night; their defense, which had looked so assured at 3-0, was suddenly scrambling.

The foul count — Atalanta committed ten to Milan's three — reflects how frustrated the visitors became as the game slipped away from them, and how hard they worked to claw it back once it did.

Our pre-match read made Milan the favorite at 57 percent, and that held up — they won, and for long stretches they looked every bit the better team. But Atalanta's late pressure will stick with the coaching staff. A two-goal cushion evaporated in fifteen minutes, and that's a pattern worth watching.

For Milan, the three points keep them on the right side of the table. The question now is whether that second-half collapse in concentration is a one-off or something deeper. Atalanta, meanwhile, will feel they left something on the pitch — two consecutive losses in their recent form, and another one here despite making a real match of it. They have the quality to turn it around. The next few weeks will tell us if they have the consistency.

Follow live scores and results across every major competition on the FutbolToday homepage, and find more analysis in our guides.