Daniel James looked to have rescued a point for Ole Gunnar Solskjaer's side with an 88th-minute equaliser before a mistake from David De Gea in the third minute of injury time handed Palace their first win of the season and their first in the league over United since 1991.
Jordan Ayew had given the visitors the lead in the first half -- their first goal of the season -- after another error, this time from Victor Lindelof. Marcus Rashford was given the chance to equalise in the second half but saw his penalty cannon back off the inside of the post just five days after Paul Pogba's miss from the spot denied United victory at Wolves.
Palace had not scored a league goal at Old Trafford in 15 years before Ayew's goal and a late second from Van Aanholt, which should have been saved by De Gea at his near post, condemned the home side to their first defeat of the season.
Solskjaer said in the summer that Mason Greenwood would get chances and he's backed up his words. It would have been easy in the second half to leave on the more experienced Jesse Lingard as United went looking for a goal, but Solskjaer was quick to throw on Greenwood instead. The 17-year-old was on before the hour mark -- a show of faith in a young player at a crucial stage of the game.
It's not only that Palace's opener was so soft -- a long punt upfield, a flick-on and a finish -- it was the way in which United reacted after it went in. They were in complete control and the goal came out of nothing. But for the 10 minutes before half-time they were all over the place and Palace could have inflicted more damage before the break. It was the same against Wolves after their equaliser. United aren't a team that deal well with setbacks.
Manager rating out of 10
6 - It wasn't a surprise that the Norwegian named an unchanged XI from the one that drew with Wolves on Monday night and he could do nothing about Lindelof's lapse that allowed Palace to score in the first half. Solskjaer was quicker to change things around than he was at Molineux and his decision to leave James on looked to have worked before Van Aanholt's late winner.
Player ratings (1-10; 10 = best, players introduced after 70 minutes get no rating)
GK David De Gea, 5 -- Spent most of the game watching and then made a terrible error in stoppage time when Van Aanholt's shot squirmed underneath him at the near post.
DF Aaron Wan-Bissaka, 6 -- Playing against the club he left in the summer and didn't do much wrong despite the miserable result.
DF Harry Maguire, 6 -- Stepped into midfield to send Rashford through with an inch-perfect pass. Won't be happy with his positioning for Ayew's goal but it was Lindelof's error first.
MF Scott McTominay, 7 -- Had the first chance of the afternoon when he headed over from Shaw's corner and it was his run that won the penalty in the second half.
MF Paul Pogba, 6 -- Was having a quiet game until he did brilliantly to win the ball back in midfield to start the move from which James scored the equaliser.
MF Jesse Lingard, 6 -- Led the press from midfield but was sacrificed early in the second half when Solskjaer sent on Greenwood as United went looking for an equaliser.
FW Daniel James, 7 -- Struggled with his end product against Wolves but scored a beauty here. Sorted his feet out so quickly and flicked his finish into the top corner.
FW Marcus Rashford, 6 -- Had the chance to equalise but hammered his penalty off the inside of the post. Wasted a couple of free kicks in good positions.
FW Mason Greenwood, 6 -- Didn't see much of the ball.
MF Juan Mata, N/R. -- Had no time to make an impact.