Ducks goalie Jean-Sebastien Giguere made 22 saves in his first full preseason game.
Kunitz scored his first goal 23 seconds into the game on a wrist shot, then gave Anaheim a 2-0 lead at 5:30 of the first period.
Canucks goalie Roberto Luongo blocked Teemu Selanne's slap shot, but the puck bounced behind the net and ricocheted to Kunitz, who scored inside the left post.
Corey Perry gave Anaheim a 4-0 lead on a power play at 17:06 of the second period. Vancouver's Michael Grabner scored a power-play goal at 4:02 of the third period. McDonald ended the scoring on another power play at 6:42.
Luongo finished with 15 saves before being relieved by Julien Ellis-Plante, who made 13 saves and stopped a penalty shot by Samuel Pahlsson in the second period.