The result is another serious blow to Vancouver's fading playoff hopes as the club remains five points back of the Phoenix Coyotes for the final wild-card berth in the Western Conference.
Luca Sbisa, Matt Beleskey and Mathieu Perreault also scored for Anaheim (48-18-8), while Andrew Cogliano and Daniel Winnik added two assists as the Ducks moved into first place in the Pacific Division.
The Minnesota Wild left the door open for the Canucks to move within three points of the West's final playoff spot after a 3-1 road victory in Phoenix, but Vancouver was unable to capitalize on the opportunity.
With just six games left on their schedule, it looks as though the Canucks can start making their off-season plans.
The Ducks led 2-1 after the first period and increased their lead at 11:02 of the second off a Canucks' turnover when Winnik chipped a pass from the side of the net into the slot to Koivu, who buried his 10th of the season.
Vancouver had a number of opportunities to make things interesting, including three power plays in the second alone that yielded a lot of possession, but not many clear-cut chances for the league's 27th-ranked unit.
After Koivu gave the Ducks a 3-1 lead, Andersen made consecutive saves off Vancouver forwards Chris Higgins and Jordan Schroeder from in tight before shooting out a pad to stone Zack Kassian moments later.
Perry then put the game out of reach by banging home his 38th of the season at 6:45 of the third.
Vancouver had a chance to pull one back with about 11 minutes to go, but both Daniel Sedin and Nicklas Jensen failed to find the range from in close against Andersen, who started in place of No. 1 goalie Jonas Hiller.
Perreault added insult to injury with his 18th of the season on a Ducks' power play at 14:03.
Anaheim has thoroughly dominated the first four meetings of its five-game season series with Vancouver, outscoring the Canucks 20-6 and surrendering just one point to its division rivals. The teams meet for the final time April 7 at Rogers Arena.
The Ducks opened the scoring at 7:36 of the first period after the Canucks had a couple of good chances at the other end against Anaheim's rookie netminder. The puck was played back to the point to Sbisa, whose shot found its way through a maze of players and past Lack for his first of the season.
Beleskey then made it 2-0 just 1:11 later with his sixth of the campaign. Ducks forward Rickard Rakell collected a puck in front of Lack and fed a behind-the-back pass to Beleskey, who beat the helpless Canucks netminder upstairs as Anaheim scored on two of its first five shots.
Vancouver got one back at 11:12 off some nice work from Kassian in the offensive zone. The big forward maintained possession at the blue-line before feeding defenceman Ryan Stanton. His shot was kicked out by Andersen right to Richardson and he buried his 10th of the season.
Anaheim had a great response to that goal, with Perry hitting the Ducks' second and third posts of the period on a dominant shift that saw Vancouver hemmed in its zone for an extended period of time.
Higgins had a nice deflection in the slot that Andersen was quick to handle with just over a minute to play before Lack made a glove save on Anaheim's Patrick Maroon.
Notes: Richardson had a great chance with the game scoreless in the first period, but Andersen made a phenomenal stick save on a shot that he deflected onto the post. ... Ducks forward Teemu Selanne sat out after playing Friday night in Edmonton against the Oilers. The 43-year-old has not played back-to-back games this season, but said after the morning skate that he will play against the Canucks in Vancouver on April 7. ... Kassian now has two goals and five assists during his four-game point streak. ... Perreault now has six goals in his last eight games. ... Ducks forward Ryan Getzlaf took a shot off his foot prior to Anaheim's fifth goal and did not return.