Milan fell 3-2 at home to Barcelona at the end of a spectacularly entertaining game, including a Kevin-Prince Boateng gem and a soft penalty.
Both teams were already qualified, so this was a head-to-head for the top spot in Group H and neutrals were hoping for a repeat of the dramatic 2-2 draw at the Camp Nou. Alexandre Pato was still not fit to start after two months out with a thigh strain, while Antonio Cassano, Gennaro Gattuso and Philippe Mexes were among the absentees.
Zlatan Ibrahimovic, Mark Van Bommel and Gianluca Zambrotta started against their former club, while Barça missed Andres Iniesta and the suspended Dani Alves. The Spaniards were unbeaten in 26 games in all competition and played in their green away strip.
Milan had a chance in the first 40 seconds, but Barca’s rather unusual defensive line-up managed to scramble clear from Ibra and Robinho. At the other end, Van Bommel needed a perfectly-timed tackle to stop Messi on the edge of the box.
Barcelona took the lead with their first real chance. Messi’s cross-field pass found Seydou Keita and his low pass across the six-yard box went past David Villa, deflected in off Van Bommel’s shin.
It was almost 2-0 on 17 minutes, as a chipped pass found the Cesc Fabregas half-volley, but Christian Abbiati did very well to parry with his legs at the near post.
However, Robinho wasted an incredible opportunity when Boateng pulled back across for the unmarked Brazilian to balloon over from four yards!
The pressure paid off, as Milan equalised moments later. A long pass found Clarence Seedorf down the left and he rolled a perfect pass into the path of Ibrahimovic, who nutmegged Victor Valdes.
Fabregas sprung the offside trap and it was pulled across for Messi to clip the crossbar from five yards under pressure from Ignazio Abate.
The referee awarded a very soft penalty when Xavi tried to run on to a Fabregas pass and went shoulder-to-shoulder with Alberto Aquilani. Messi took a very stuttering run-up, which is against the rules, so it had to be re-taken. The Flea had a proper spot-kick at the second attempt, firing low just past Abbiati’s hand.
Abbiati needed a brilliant save at the near post from point-blank range to palm David Villa’s strike down and it bounced on to the roof of the net.
Valdes had his palms stung by a Boateng half-volley and Mascherano needed a last-ditch tackle from behind to stop Robinho running clear on goal. A Seedorf free kick was charged down and Van Bommel’s follow-up struck Keita in the stomach from point-blank range. Thiago Alcantara also got back to throw himself at a Seedorf half-volley and from the corner Thiago Silva nodded just wide.
Pato replaced Robinho for the second half and Milan equalised with a sensational solo effort from Boateng. The Ghanaian trapped a short clearance and flicked it off the inside of his heel to get past Eric Abidal and sweep it in with his right foot at the near post.
Barcelona restored their lead for the third time with a classy team goal. Messi’s inspired angled pass went through a crowd of defenders to find Xavi for a finish at full stretch.
More bad news for Milan, as Alessandro Nesta picked up an injury and had to make way for Daniele Bonera. Ex-Udinese starlet Alexis Sanchez replaced Villa. Abbiati needed a double reaction save to parry two different Sanchez tap-ins from a free kick.
In stoppages Sergio Busquets had to be at full stretch to intercept a through ball that was sending Pato clear.
Milan 2-3 Barcelona
Scorers: Van Bommel og 14 (B), Ibrahimovic 20 (M), Messi pen 31 (B), Boateng 54 (M), Xavi 63 (B)
Milan:Abbiati; Abate, Nesta (Bonera 66), Thiago Silva, Zambrotta; Aquilani, Van Bommel (Nocerino 71), Seedorf; Boateng; Robinho (Pato 46), Ibrahimovic
Barcelona:Victor Valdes; Puyol, Mascherano, Busquets, Abidal; Xavi Hernandez, Keita, Fabregas (Pedro Rodriguez 80), Thiago Alcantara (Dos Santos 90); Messi, Villa (Sanchez 67)
Ref: Stark (Ger)
Think you know your Italian football? Share your knowledge, tips and comments to win cash prizes in OLBG's World Cup tipster competition  - £10,000 to be won!