The Ducks bounced back from a 4-3 overtime loss to Edmonton on Friday to pick up their franchise record-tying 48th win of the season. They moved one point ahead of San Jose for second place behind St. Louis in the Western Conference.
Anaheim (48-18-8) beat Vancouver for the fourth time in four meetings this season and for the fifth straight time overall.
Ducks captain Ryan Getzlaf, who is second in the NHL in points, left the game late in the third period. He was looking at his right hand, flexing it, as he sat in the penalty box after fighting Alexandre Burrows in the second period.
It was the only fight in the first meeting between the teams since Anaheim's 9-1 win on Jan. 15, when the Canucks were criticized for the way they played down the stretch while picking up 58 penalty minutes in the last 7:11 of the game.
Brad Richardson scored for the Canucks, who had a four-game points streak snapped (3-0-1). Eddie Lack gave up five goals on just 21 shots.
Sbisa gave Anaheim a 1-0 lead 7:36 into the game with a slap shot from the blue line and Beleskey made it 2-0 just 69 seconds later with a one-timer from the slot after Rickard Rakell dropped a pass back to him.
Richardson scored on a sharp-angle rebound at the 11:12 mark to get Vancouver within a goal.
But the Ducks restored their two-goal lead 11:02 into the second period on Koivu's backhand on a loose puck in front and two goals in the third put it away.
Perry's goal at 6:45 on a rebound was his 38th of the season and Perreault scored at the end of a 2-on-1 on a power play at 14:03.