Curtis Joseph stopped the first 29 shots he faced and was trying to make Fredrik Sjostrom's first-period goal stand up when the Pacific Division leaders finally got on the board with 12:27 to play.
Joseph stopped Moen's 15-foot backhander in the slot, but the Ducks' forward regained possession in the right corner and skated into the circle before scoring his seventh goal of the season on a wrist shot.
Phoenix defenceman Travis Roche received an interference penalty on a delayed call preceding Moen's goal, and the Ducks capitalized on the ensuing power play.
Defenceman Derek Morris wound up to slap the puck out of the zone, but Anaheim defenceman Francois Beauchemin got his stick in the way. Chris Pronger kept the puck alive for Anaheim and Teemu Selanne fed it into the slot, where McDonald scored his 15th goal on a one-timer that beat Joseph from 25 feet.
The Coyotes have lost six of their last nine games following a seven-game winning streak that was their longest in seven seasons. They haven't beaten the Ducks in Anaheim since Oct. 12, 2003, when Sean Burke made 31 saves in a 2-0 victory.