Champions League Classic: AC Milan 3, Ajax 2 (April 2003)
Paolo Maldini. Zlatan Ibrahimovic. Filippo Inzaghi. Relive this five-goal thriller from the 2002-03 Champions League season.

Welcome to Calcio Square, an email newsletter dedicated to Serie A and Italian football. You're reading the Thursday classic match review, a new weekly series about the best games Italian teams have ever played.
WE ALL KNOW HOW the 2002-03 Champions League campaign ended: AC Milan beat Juventus on penalties to win their sixth European Cup in an otherwise unremarkable final at Old Trafford. But they nearly missed out altogether. For the last 10 minutes of their quarterfinal against Ajax, the Rossoneri were as good as gone.
Milan coach Carlo Ancelotti seemed to find an equal adversary in Ronald Koeman, the former Dutch midfielder who gained credibility as a coach after leading Ajax to a domestic double in 2001-02. He gave Zlatan Ibrahimovic, Wesley Sneijder, Steven Pienaar, and Rafael van der Vaart their debuts and hope to fans that Ajax could scale the heights they reached during the 1990s.
A dour first leg in Amsterdam ended goalless, setting the table perfectly for a second-leg bonanza.
The lineups
Who started? A quick run through the pregame formations.
There are legends and answers to trivia questions below. Several Ajax players, including Ibrahimovic, Sneijder, Cristian Chivu, and Andy van der Meyde, end up playing for Milan or Inter later in their careers. Even a young Nigel De Jong, then 18, makes an appearance off the bench.
Milan's lineup is a status symbol for early 2000s football. Ancelotti rolls out the 4-4-2 formation, but there's a lot of fluidity here. Massimo Ambrosini is the unsung hero of this side, with Cristian Brocchi as its midfield engine and Rui Costa as the brains of the operation. Gennaro Gattuso and Andrea Pirlo are missing because of suspension and injury.

The match
Reviewing the most important plays, including footnotes with tidbits about the teams and players in action. You can watch the game here.
0' Ultras from the Curva Sud hurl white streamers as the players emerge from the tunnel. It's a Halloween prankster's dream. They're waving flags and leaning over the guardrails, popping flares and balloons, and making deafening noise. You get shivers as the camera pans left and captures Inzaghi, Rui Costa, Alessandro Nesta, Andriy Shevchenko, and Paolo Maldini warming up on the spot.
4' Both teams are trying to establish a foothold. The two biggest roars are for Maldini, who's wearing a face mask after breaking his nose in the derby against Inter, and Shevchenko, who picks up the ball in midfield before running into a dead end. Marco van Basten, who starred for Ajax and Milan in the 1980s and 90s, is watching from the stands.
8' Right-back Dario Simic wins possession along the sidelines and feeds the ball to Rui Costa for a quick one-two that then allows the No. 10 to take the game's first shot from a frankly impossible angle. Ajax respond half a minute later with a half chance of their own.
10' Ibrahimovic, who's just 21 here, is having a tough time beating Maldini and Nesta but wins a corner kick. He tussles with Maldini in an encounter that feels ancient but reads nicely as a metaphor for the former's future introduction to Milan's management team at the expense of the latter.

13' Kakha Kaladze plays a 20-yard forward pass to Inzaghi, who breaks a tackle on the left side of midfield before running out of play. Inzaghi could've easily fallen over and drawn a foul but stays up and ends up getting nothing out of it. This is why players choose to dive. The camera pans to Ancelotti inhaling his first cigarette of the night.
15' Brocchi threads a defense-splitting pass to Inzaghi, who's called offside, but replays show he's not only well onside but in front of three Ajax defenders when the ball gets played. That's just criminal officiating. Inzaghi rushes over to the linesman with his fingers cupped in the usual Italian manner.
21' Inzaghi gives the ball away from deep within Ajax's third and Pienaar leads the counter after Ambrosini pulls out of a challenge in midfield. Pienaar releases Ibrahimovic with an excellent diagonal pass, but Dida is first to the scene. Even when Ibrahimovic¹ finds space between Maldini and Nesta, he can't seem to do anything with it.
24' Milan win a free-kick on the far right edge of the penalty area, and Rui Costa's subsequent delivery wreaks absolute havoc in the 18-yard box. Nesta's tame header trickles into a sea of bodies and finds Shevchenko. The next shot is blocked, so Ambrosini plays it back to Brocchi for a follow-up effort. It takes a vicious bounce off a defender and heads straight for the top right corner, but goalkeeper Bogdan Lobont reaches out to make a miraculous fingertip stop. Replays aren't conclusive but seem to show the ball crossing the line.²

30' A lovely flowing move gives us the first goal of the game. Rui Costa intercepts in Milan's half and recycles possession. Nesta receives the ball and releases a quick forward pass to Ambrosini, who flicks it back into Rui Costa's path. The midfielder then adjusts himself for a perfectly weighted ground ball for Shevchenko, who's spent most of the half on the right side of the field³. He takes on Jelle van Damme before pushing the ball to his right foot, and the subsequent cross bounces high off the Dutchman. Inzaghi is all alone, and he heads it downward and into the net⁴. 1-0 Milan.
38' The game has become choppy and riddled with fouls as Milan and Ajax jostle for possession. Ambrosini is already on a yellow but doesn't decline any invitation to jump into the fray and fight for second balls. He plays with the same intensity without getting red-carded. It's one of his finest games of the season.
39' Dida kicks a long ball up field and it drops to Shevchenko, who takes the long way around as three defenders chase him down. He flicks a right-footed shot just over the crossbar.⁵ Classic Sheva.
50' Chivu executes an excellent sliding tackle on Shevchenko. It's one of several well-timed challenges in this game. Abubakari Yakubu launches a ball out wide to Van der Meyde, who holds for a second before targeting Ibrahimovic in the area. But the cross is too high for the Swede, who watches as his attempt streaks wide.
58' Ajax are building momentum and Ibrahimovic takes a snapshot from distance. Dida easily handles it. But the Dutch side is finding seams and even forcing Shevchenko to come back and defend.
60' Inzaghi is yards away from the net and completely unmarked when he somehow heads Brocchi's cross well over. Inzaghi clearly doesn't expect the time and space he gets as his feet are planted when the cross arrives. There's no way this game ends 1-0.
63' John O'Brien wins a duel against Brocchi and spots the run of Van der Meyde, who plays an easy pass to wide-open substitute Jari Litmanen for the tap-in. Alessandro Costacurta completely loses Litmanen as Ajax push forward, and it's 1-1.
65' Milan immediately react and build off one of Nesta's inch-perfect tackles to retake the lead. The Rossoneri move the ball from right to left, and Costacurta launches a ball 40 yards to Inzaghi, whose perfect touch enables him to turn to his left and march past two defenders.⁶ He lifts the ball high into the area and finds Shevchenko for the finish. 2-1 Milan.
73' Ajax have more of the ball but can't do much with it. Milan are closing down angles and seem happy enough to concede fouls and throw-ins. Basically, they'll do anything to disrupt their opponents' rhythm. Even if the pace of the game has dropped, the intensity is still high as every ball counts. The teams are tiring, though, as we're seeing fewer short passes and more of the risky long-ball variety.
78' Van der Meyde forces Simic into a turnover and Pienaar kick-starts the counter. The ball's in Milan's third not five seconds later, and Van der Meyde chucks it into the mixer. There are four Milan players in the frame but none react quicker than Pienaar, who stabs home the equalizer. The Rossoneri completely fall asleep there. 2-2.
82' Milan need a goal now as the away goals rule⁷ gives Ajax the advantage. Rui Costa unfurls a beautiful ground pass that bamboozles three Ajax players before reaching Shevchenko, who's free in the area but unable to beat Lobont from close range. "No!" The commentators can't believe it.
83' Second strikers Rivaldo and Jon Dahl Tomasson join Shevchenko and Inzaghi in attack in a last throw of the dice. Ambrosini gets a head onto a corner kick and it goes out for another. Bodies are flying as Milan try to get a touch on a second set piece in quick succession.
90+1' "RETE! RETE! RETE!" Milan go coast to coast in 15 seconds to win the match and the quarterfinal tie. Nesta starts the play from well within Milan's half, and Costacurta progress it to the far left sideline, where Maldini launches a hopeful long ball into Ajax's area. Ambrosini wins the header, Inzaghi chases it, and he flicks it over Lobont for Tomasson to guide into the net. The commentator wants Inzaghi to claim the goal as his own. "That's all him," he says. "I don't want to discuss it any more."
Footnotes
- Ibrahimovic comes into the game with 20 goals on the season but doesn't get on the scoresheet.
- Goal-line technology is so good because it's black and white and doesn't require any discretion whatsoever. If the entire ball crosses the line, it's a goal. If it doesn't, it isn't. I'd argue it's the greatest addition to football this side of the century.
- You may have wondered whether Inzaghi and Shevchenko could co-exist as they're such similar players, but they have clearly defined spaces here and don't run into each other. They're never close together. The two-striker formation works when you have strikers who are willing to drift wide and make plays like Shevchenko does here.
- Inzaghi ends the season with 35 goal contributions, the most he ever achieves in a single campaign.
- People forget how much skill Shevchenko had on the ball. He was a fine poacher but also an all-around attacker who could infiltrate spaces and put defenders on skates.
- Inzaghi has been subjected to some seriously unfair revisionism. He wasn't just some goal-getting brute who went cherry-picking every game. He could play with his back to goal and dribble past guys too. He was no Messi, but he deserves to be remembered as more than someone "born offside."
- UEFA abolished this rule in 2021 in the hope that it would create more offense in the first leg. But a part of me misses it. You don't get the drama of this second leg or Ancelotti throwing on multiple forwards without the rule in place.