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 third-round exit to Swansea City earlier this month, is moving to the Welsh capital as part a permanent transfer.
However, England Under-21 international Zaha, who only arrived at Old Trafford last summer, will only be spending the remainder of the season in the Welsh capital.
"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.”
Goal exclusively revealed on January 17 that Zaha had stormed out of training after learning United officials were not willing to send him out on loan this month.
But Moyes now backs 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."