The Brazilian will join the Welsh club on a permanent deal, while the English winger will move on loan until the end of the season.
The 23-year-old Brazilian, who has made just three appearances for the Premier League champions this season and was sent off in the club’s FA Cup exit to Swansea City earlier this month, is moving to the Welsh capital in a permanent transfer.
England Under-21 international Zaha, who only arrived at Old Trafford last summer, will be spending the remainder of the season on loan with Michael Laudrup's men.
"We're delighted for Fabio because he has been a great servant," Moyes told MUTV. "His brother [Rafael] is doing a great job for us here as well.
"We wish him well. He had one or two options but, in the end, we felt we couldn't get him enough games.
“I said to the players, if you feel I'm not getting you enough games, come and see me. Fabio felt that so he's got a move to Cardiff.”
Moyes backed Zaha’s temporary switch to Cardiff, and says that Ole Gunnar Solskjaer is the right manager to get the best out of the winger.
"With Wilfried Zaha, I'd said to him during the summer that we wanted to get him games. If he played, then great, but if he couldn't, we'd get him out on loan,” the Scot explained.
“We had one or two offers for him but just felt Cardiff, at this moment in time, might be the right club.
“With Ole going there as well, he knows how the club works here and exactly what we do with the players so hopefully it will be a good move for Wilf."