Perry broke a scoreless tie 8:30 into the second period with his 11th goal of the season, and after the Canucks' Tom Sestito tied it 5 1/2 minutes later, assisted on Nick Bonino's goal with 51 seconds left in the period.
Andrew Cogliano added an empty-netter for the Ducks, who improved to 8-0-0 at home and lead the NHL with 31 points.
Andersen stopped 35-of-36 shots, becoming the first goalie to win his first six NHL starts since 1993.
Eddie Lack made 20 saves for Vancouver, which wrapped up a four-game road trip with a 1-2-1 mark.
Chipotle plans first price increase in 3 years
Justin Bieber crashes Drake Bell's album release party