United came from behind to win at the San Siro and spoil David Beckham's first ever appearance against his old club after the former England captain - on loan to Milan from the Los Angeles Galaxy - had provided the free kick that led to Milan's early goal in the first-leg match.
"We played really well in the first half, going a goal up, and we had three really good chances," Beckham said. "If we had put them away, obviously it would have been a different game. But you have to put those chances away, especially against a team like Manchester United and a player like Wazza (Rooney)."
United defender Patrice Evra half cleared Beckham's free kick and the ball came to Ronaldinho, who scored with a deflected shot.
Paul Scholes equalised with a 36th minute miskick from Darren Fletcher's cross. The midfielder missed the ball with his right foot but it struck his left leg and the ricochet took it past surprised goalkeeper Dida.
Veteran United goalkeeper Edwin van der Sar had to make top quality saves from Andrea Pirlo's long range free kick and Ronaldinho's curling drive before Rooney struck twice at the other end.
He headed home a cross by Antonio Valencia in the 66th minute; and was left unmarked to head powerfully home from Darren Fletcher's cross from the left in the 74th.
Facing United for the first time since moving to Real Madrid in 2003, Beckham was replaced by Clarence Seedorf after 71 minutes and left the field with United fans singing "there's only one David Beckham".
Seedorf added a second for Milan when he turned home Ronaldinho's cross in the 85th minute, but the seven-time European champions need a convincing win at Old Trafford to make it to the quarter-finals.
Michael Carrick was sent off in injury time for a second yellow and will miss the second leg on March 10.
While the game in Milan was a five-goal thriller, Lyon beat Madrid for the third time in a row thanks to a solo strike by Jean II Makoun in the 47th minute.