Scorer: Giuly 57 (B)
Milan hit the woodwork with Alberto Gilardino, but Ludovic Giuly gave Barcelona a potentially decisive victory at the San Siro.
It'll take something very special indeed for the Rossoneri to reach their second consecutive Champions League Final, as they must win at the Nou Camp on April 26.
This was essentially an early Final between the two favourites for the trophy, but also saw the current top scorers in the competition and the most recent winners of the Ballon d'Or - Andriy Shevchenko and Ronaldinho - face off. They had already met in the Group phase last season with a 1-0 win at the San Siro and a last-gasp 2-1 defeat in the Nou Camp. The Coaches were also familiar, as Frank Rijkaard and Carlo Ancelotti were teammates in Arrigo Sacchi's Grande Milan.
Milan had a heavy blow with the absence of form striker Pippo Inzaghi due to tonsillitis, with Billy Costacurta also ruled out, but Jaap Stam returned to the fold after injury. Barca also had problems with Henrik Larsson, Lionel Messi and the suspended Deco left in Spain. Edmilson and Rafael Marquez returned from fitness problems.
In a new move, the Rossoneri put the travelling fans in the third tier, effectively surrounding the field and both goals with home supporters that lit up the stadium with an organised choreography before kick-off.
Milan had a very aggressive start with both Kaka's cross and Jaap Stam's header charged down from an Andrea Pirlo free kick, but Barca got into a slow passing rhythm in a bid to take control of the game.
Carles Puyol required a fine tackle inside the area to stop Kaka's run, but on the resulting throw-in Alberto Gilardino smartly chested down the ball to turn between two defenders and slammed his shot into the upright from the tightest of angles.
Moments later, a sweeping Clarence Seedorf cross from the left found Shevchenko's downward header and brought a great save out of Valdes at the back post.
Barcelona's first shot on goal came on 22 minutes with Samuel Eto'o's strike from the edge of the box well held by Dida. Ronaldinho's free kick from a very dangerous position was charged down by the wall.
Dida rushed off his line to pluck the ball off Ludovic Giuly's foot as he sprung the offside trap and had a clear run on goal.
A Pirlo free kick went out after skimming the head of Shevchenko from seven yards, then Kaka was hacked down on the counter-attack, earning Puyol a yellow card.
Pirlo's free kick skimmed the near post, but Valdes had that corner covered.
Pirlo gave away the ball on the edge of the area, but the Milan defence managed to close down Barca's trident and Dida held Giuly's finish.
A splendid Pirlo long ball found Gilardino, but the Parma man was flagged for an extremely tight offside position. A good opportunity went begging when Kaka and Seedorf bumped into each other on the edge of the area, neither able to decide who was going to put the cross in.
In first half stoppages, Eto'o ballooned over the bar from the D after Milan had foolishly lost the ball in midfield.
There were no substitutions at the half-time break, but the tempo of the game lifted considerably and there was a curious battle of the back-heel flicks between Ronaldinho and Alessandro Nesta.
Milan had another fantastic scoring opportunity on 50 minutes when Kaka sprung the offside trap and rolled across for Gilardino, who was off balance and pushed it wide from six yards. The Brazilian should perhaps have gone for goal himself.
Stam had a shot charged down on the edge of the area, then the Dutchman's looping cross-shot landed on the roof of the net.
However, it was Barcelona who took the lead soon after. Ronaldinho managed to shrug off Gennaro Gattuso's challenge and pass through to Giuly, who fired his finish into the top corner at the near post from six yards.
Barca almost snatched a second on the counter-attack after Seedorf was dispossessed by Giuly, but Ronaldinho's angled drive clipped the upright with Dida beaten.
Dida was at full stretch to capture a fine Iniesta drive from distance after a solid team move.
Ancelotti made a change on 66 minutes, with Paolo Maldini replacing a disappointing Pirlo, moving Seedorf to central midfield and Serginho to a more advanced left flank role. Massimo Ambrosini took over from a furious Gattuso.
Barca also replaced goal-scorer Giuly with Brazilian Juliano Belletti, but Oleguer was booked for time-wasting and will miss the second leg just before making way for Thiago Motta.
Kaka went on one of his surging runs only to fire wide from 20 metres, then Serginho failed to make the most of a sweeping Stam cross that missed Gilardino.
Eto'o skipped round Stam, but fired well wide of the far post, the ex-Manchester United defender replaced by Marcos Cafu immediately afterwards in a bid to bring more pace to the side.
There was a glorious opportunity to score an equaliser 10 minutes from time when Kaka threaded through for Ambrosini, but he horribly scuffed his shot to fire wide with only the goalkeeper to beat.
Nesta was booked for stopping a Ronaldinho run and the Brazilian curled the resulting free kick over the bar.
Valdes flew to pluck a precise Maldini header out of the air from a corner kick, then Kaka also threatened with a low drive that skimmed the upright.
Milan: Dida; Stam (Cafu 76), Nesta, Kaladze, Serginho; Gattuso (Ambrosini 73), Pirlo (Maldini 67), Seedorf; Kakà; Gilardino, Shevchenko
Barcelona: Valdes; Oleguer (Motta 75), Puyol, Marquez, Van Bronckhorst; Van Bommel, Edmilson, Iniesta; Giuly (Belletti 70), Eto'o, Ronaldinho (Lopez 89)
Ref: Sars (Fra)
Na kraju ispalo najgore moguće.Poraz doma. Izgleda da se Ancelottiju nešto pobrkalo u glavi sa onim famoznim izmjenama i taktikom poslije primljenog gola.Valjda si je zabrijao na iste zamjene kao i protiv Lyona.Svaka čast Barca ,daleko najjača momčad LP. Čak sam i ja izgubio svaku nadu da bi mogli ugledati Pariz i finale LP.