The 20-year-old has signed a five-and-a-half year contract at Old Trafford after the 19-time English champions and Palace agreed a deal for the winger.
The Red Devils are expected to pay £10m up front with an extra £5m in additional fees, and Zaha will be immediately loaned back to Palace for the remainder of the season.
“I am delighted to be joining Manchester United and ending the recent speculation,” Zaha said.
“I would like to thank the owners at Palace for making the move possible, however my focus for the next five months will be solely at Crystal Palace.
“I have been at Palace for more than 10 years, I will always love the club and I want to help get them get back to the Premier League, particularly for the fans who have always been so good to me.”
A statement on United website read: “Manchester United, Crystal Palace and Wilfried Zaha have reached an agreement for the player to join Manchester United in July 2013
“The player is having a medical in Manchester today (Friday 25 January).
“There will be no further comment by any party until Wilfried joins United in July 2013.”
Zaha has scored five goals in 30 appearances for Ian Holloway’s side this season.