Di Maria fires Real past Auxerre
Second half substitute Di Maria volleyed home from inside the area nine minutes from time to send Real top of the group standings on six points, two ahead of AC Milan who were held to a 1-1 draw at Ajax Amsterdam.
Auxerre were on the back foot throughout the match but proved dangerous on the break and under-pressure Real defender Pepe even headed the ball against his own post from a cross shortly before Di Maria broke the deadlock.
The home side were content to reach the interval with a clean sheet after Olivier Sorin pulled off some good saves to deny Marcelo and Cristiano Ronaldo, who cost more than three times Auxerre's 30 million euro annual budget.
"It was a very difficult match, (Auxerre coach) Jean (Fernandez) prepare it very well tactically," Real coach Jose Mourinho told French TV channel Canal Plus.
"It is important to have six points before playing AC Milan, but a draw would maybe have been logical."
Fernandez agreed a draw would have been a fair result.
"It's kind of Jose to say that. I actually also think a draw would have been well deserved," he said.
Although Real were clearly the better side, they were often stretched by Auxerre's counter-attacking skills. Sergio Ramos and Pepe sometimes proved shaky at the back, especially against long balls.
In a packed Abbe Deschamps stadium, Real got off to a good start when Ronaldo forced Sorin to parry a low shot from just inside the box in the 15th minute.
The Real strikers, however, were also out of sorts. Karim Benzema gave another terrible performance and Gonzalo Higuain had an attempt cleared off the line by Kamel Chafni.
"Karim has a lot of talent but he needs to play with more character," said Mourinho.
"When I came here, this team had defence problems. Now we are more solid but we still need to find our stride in attack. The players need some time."
After the break, Auxerre looked more composed and Ireneusz Jelen collected a through ball only for the Poland striker to fire just wide at the hour.
Real stepped up a gear after Karim Benzema was replaced by Mesut Ozil and Di Maria came in for Lassana Diarra.
Just as an embarrassing goalless draw loomed for Real, Argentine Di Maria chested the ball down in the area before volleying into Sorin's bottom left-hand corner.
Auxerre players protested to referee Claus Bo Larsen as it appeared that Sergio Ramos handled the ball before setting up Di Maria.
"I think the referee made a mistake. It's frustrating to lose this way after all our efforts," said defender Cedric Hengbart.
Auxerre continued to push hard but Mourinho had replaced Higuain by defensive midfielder Mahamadou Diarra and Real were able to hold on.
Real Madrid next face AC Milan at home on October 19, while Auxerre travel to Ajax Amsterdam.