There were moments last night when Ronaldinho made an elegant case that, in spite of everything, he can still recapture the form that once made him the greatest footballer on the planet. Then Wayne Rooney intervened to remind him that time moves on.
This was a San Siro smash and grab for Manchester United, a team boxed on the ropes who threw two punches and landed them both. As usual for United, the man who came out swinging was Rooney, whose two goals in the second half gave his team a victory that had defied the logic of a game that was, for long periods, dictated by the old boys of Milan.
Watching from the stand, Fabio Capello will have recognised a new Rooney even from the player he first met two years ago, one who could transform the anonymity of his first half into a brilliant conclusion. He dominated the Milan defence after the break – "They couldn't handle him," said Sir Alex Ferguson – and the two goals he headed in were just about the only glimpses he got of goal in the whole game.
True, Rooney's performance did not include some of the flicks, passes and turns of Ronaldinho; rather he went briskly about the business of winning the game. And on nights such as these that really is all that matters.
With Rooney, United have an escape route. This was a night when they discovered an old team who have mastered the passing of the ball and were eager to demonstrate against one of Europe's new forces that they too can still play this game beautifully. But United have a cunning plan in these situations too; they know how to play on the counter-attack and Rooney requires only the slightest leeway to have his say.
On Monday, Ferguson did his usual scoffing about the way in which Rooney is portrayed in the press. "The way you lot write about him you would think he was a god," he said. Guess who got his prayers answered last night?
There were moments when even Ferguson accepted that United were lucky, no more so than when a goal off Paul Scholes' shin leveled the score on 36 minutes after Ronaldinho's opener in the first three minutes. Even as his players celebrated, Ferguson was raging against his team, telling Jonny Evans to "fucking wake up" as the United players found themselves constantly caught on the back foot.
But no team scores three goals in San Siro – and United have only ever scored one goal before in this stadium – without a great deal of quality and stubbornness. Clarence Seedorf's late goal made the scoreline slightly less daunting for the return leg on 10 March but Leonardo's assertion that "2-0 in Old Trafford is not impossible" sounded like a manager who felt that he had to say something brave to raise the mood.
Rooney was not the only one who stood out last night for United. Edwin van der Sar was exceptional in goal, keeping Milan at bay in United's darkest moments. And Darren Fletcher got stronger as the game went on, eventually making Rooney's second goal as Milan fell apart. The dismissal of Michael Carrick in injury-time was a blow for United but it could have been so much worse for his side.
For David Beckham, substituted with 18 minutes of the game left, there was a tribute from the United fans who sang his name as he sat back down on the bench. It might have been different had their team not just come back into the game against all the odds but it will have meant a great deal to Beckham. His delivery from free-kicks was excellent but he was, as he always is these days, a little too one-paced.
The most intriguing clash of the first half was between the two Brazilians on United's left flank. At 19, Rafael da Silva is ten years younger that Ronaldinho and there was a case for saying that he was perhaps a bit overawed at times. No shame in that because most of the United team looked a little overawed by Ronaldinho in the first half.
Afterwards Ferguson admitted that Rafael had "made mistakes" in the game but vigorously defended his decision to play the teenager. "We have invested a great deal in him and we are not going to stop [trusting him] just because it is Milan," he said. "He has to learn that against Ronaldinho this is the real world and he has to develop his game. He made some mistakes but he won't make them again next season."
It was a brutal introduction for Rafael to life with one of the best players in the world. Ronaldinho confused Rafael with a pass off his instep early on and he dazzled Rio Ferdinand with a series of step-overs on 18 minutes that ended in a foul that arguably should have seen Ferdinand dismissed.
With the new England captain backing off and Ronaldinho advancing at speed, Ferdinand stuck out a foot and appeared to bring his opponent down just a yard outside the penalty area. Ronaldinho goes down a little too easily at time and the Portuguese referee Olegario Benquerenca waved it away.
The new England captain has not played since the Carling Cup semi-final and the rustiness shows. He will not have been happy at allowing Klaas Jan Huntelaar the wrong side of him for a shot at goal that went wide on 34 minutes. Milan had scored when Beckham's cross from the right was half-cleared by Patrice Evra and Ronaldinho's shot clipped Carrick.
United got lucky with their first goal but there were also two moments of great quality in the move: first Carrick's ball out right to Park Ji-Sung who played in Fletcher outside him. Fletcher delivered a great cross which Scholes attempted to hit with his right foot and instead shinned past Dida with his left.
Four minutes before half-time, Ronaldinho beat Evra and Scholes with a fabulous turn just inside the United half. It was hard then to imagine how the game would change after the break. Van der Sar stopped shots from Andrea Pirlo and Ronaldinho before Rooney took over.
His first came from Antonio Valencia's cross – virtually his first touch – when Rooney dropped off Daniele Bonera to head the ball in at the back post. He headed his second – completely unmarked – from Fletcher's cross. Seedorf's second goal for Milan makes it more interesting but this is United in 2010 – experienced and ruthless in Europe, and they will expect to win.
Milan (4-3-3): Dida; Bonera, Nesta, Thiago Silva, Antonini (Favalli, 37); Beckham (Seedorf, 72), Pirlo, Ambrosini; Pato, Huntelaar (Inzaghi, 77), Ronaldinho. Substitutes not used: Abbiati (gk), Gattuso, Flamini, Abate.
Manchester United (4-3-3): Van der Sar; R Da Silva (Brown, 90), Ferdinand, Evans, Evra; Fletcher, Carrick, Scholes; Nani (Valencia, 64), Rooney, Park. Substitutes not used: Kuszczak (gk), Neville, Owen, Berbatov, Gibson.
Referee: O Benquerenca (Portugal).
Man-for-man marking: Player ratings from San Siro, by Steve Tongue
Dida Unpredictable Brazilian made a mess of an early corner and was particularly slow for Scholes' goal. 5/10
Daniele Bonera One superb tackle on Park but outjumped by Rooney for second goal. 6
Alessandro Nesta Oldest outfield player in an ageing side, made to look silly by Rooney. 5
Thiago Silva Brazilian also struggled to contain Rooney when not charging forward. 6
Luca Antonini Unexpected choice at left-back, was annoyed at missing an early chance before having to limp off after 37 minutes. 6
David Beckham After the hype, 71 minutes told us nothing new. Good set-pieces, little else. 6
Andrea Pirlo The most creative holding midfielder in the game managed only one thrilling free-kick. 5
Massimo Ambrosini With Ronaldinho in front of him, had plenty of work to do, but little influence. 5
Alexandre Pato Showed no interest in chasing back and became subdued. 6
Klaas-Jan Huntelaar Quiet apart from shaving a post after half an hour. Replaced by Filippo Inzaghi. 5
Ronaldinho Plenty of smiles in first half as he lived up to his recent fine form before fading a little. 7
Giuseppe Favalli Came on for Antonini (37th min). Struggled at left-back. 4
Clarence Seedorf Came on for Beckham (72). Neat goal. 7
Filippo Inzaghi Came on for Huntelaar (77). Missed chance. 5
Edwin van der Sar Often left naked by defence and let them know it. Unlucky with deflection for first goal. 7/10
Rafael da Silva 'Learning curve' hardly covered it. Gave Ronaldinho far too much room down the left. 4
Rio Ferdinand Skipper suffered from bad communication with his partner Jonny Evans but subdued Klaas-Jan Huntelaar. 6
Jonny Evans In for Vidic, felt the manager's hairdryer after very lax half an hour. 4
Patrice Evra Unwittingly set up Ronaldinho for opening goal. Found Pato a handful. 6
Paul Scholes Poor night as a defensive midfielder before fluking equaliser. 6
Michael Carrick Second yellow card for kicking the ball away. Much better going forward than defensively. 6
Nani Preferred to Valencia for 65 minutes but showed let himself down with poor standard of crossing. 4
Park Ji-Sung Worked hard as usual without quite coming to grips with unfamiliar role behind Rooney. 6
Darren Fletcher Also in unusual position, on the left. Still set up two goals, one from each flank. 7
Wayne Rooney Displeased with service, until Valencia replaced Nani, then took glorious advantage. Booked for dissent. 8
Antonio Valencia On for Nani (64th minute). Set up Rooney's first goal. 7
Wes Brown Came on for Da Silva (90) but only briefly. N/A