He then found Filippo Inzaghi in the 24th, and the striker scored his 60th goal in UEFA club competitions, and 39th in the Champions League.
Inzaghi is now just two goals short of Gerd Muller's European record.
Second-half substitute Nuno Gomes tapped in a consolation goal for Benfica in injury time.
Celtic away woes continue
The win gives Milan three points in Group D, the same as Shakhtar Donetsk, which beat Celtic 2-0 with goals in the first eight minutes from Brandao and Cristiano Lucarelli.
Chelsea drew 1-1 with Rosenborg, and Liverpool finished 1-1 at FC Porto.
 |
|
Real Madrid's Ruud Van Nistelrooy straight back to the business of scoring goals [AFP] |
Liverpool midfielder Jermaine Pennant was sent off in the 58th minute for a second yellow card.
Real Madrid defeated Werder Bremen 2-1 with a 74th-minute goal from Ruud van Nistelrooy, who also helped set up Raul Gonzalez for the Spanish club's first goal.
Raul gave Madrid the lead in the 16th minute after taking a low cross from Van Nistelrooy for his 57th Champions League goal.
Werder Bremen immediately levelled when Boubacar Sanogo prodded the ball in from close range in the 17th.
Van Nistelrooy's winner was his 50th goal in the Champions League.
He slotted in a short pass from Raul to make up for missing a handful of chances in the match.
Late leveller for Lazio
Also, it was Marseille 2, Besiktas 0; Schalke 0, Valencia 1; and Olympiakos 1, Lazio 1.
Luciano Zauri scored a late goal to help Lazio hold Olympiakos to a 1-1 draw.
Zauri beat the offsides trap and slotted the ball past Olympiakos goalkeeper Antonis Nikopolidis in the 77th minute.
Olympiakos had gone ahead when Luciano Galletti scored in the 55th.
Chelsea slip on Rosenborg banana skin
Andriy Shevchenko scored a second-half equalizer to earn the draw for Chelsea in Group B.
Miika Koppinen gave the visitors the lead in the 24th minute at Stamford Bridge when he beat John Terry to a cross and volleyed the ball past Chelsea goalkeeper Petr Cech.
 |
Miika Koppinen (L) of Rosenborg BK gives Chelsea a big scare [AFP] |
Shevchenko leveled in the 52nd with a header after taking a cross from Florent Malouda.
David Villa scored in the second half to give Valencia a 1-0 win at Schalke in Group B.
Villa scored against the run of play in the 63rd after collecting a long ball from Luis Miguel.
He outpaced Heiko Westermann and shook off a challenge from Schalke goalkeeper Manuel Neuer before slotting home.
Porto get point
Liverpool fell behind in Porto when goalkeeper Pepe Reina fouled Tarik Sektioui and Lucho Gonzalez converted a penalty kick in the eighth minute.
Dirk Kuyt headed in from close range in the 17th to level.
Steve Finnan sent in a cross from the right that was headed across the goal by Sami Hyypia to Kuyt.
Marseille beat Besiktas in the other Group A match, with second-half goals from Julien Rodriguez and Djibril Cisse.
Rodriguez scored from close range in the 76th after Samir Nasri's corner bounced back off the post and fell to his feet.
Cisse broke through in injury time and poked the ball inside the near post.