Cam Fowler had his first career short-handed goal and added two assists. Saku Koivu scored his first goal in nearly two months in the Ducks' third consecutive win and the Islanders' 10th straight loss.
Perry scored a goal in his career-best sixth straight game late in the second period, and he added a power-play goal in the third to clinch the sixth 20-goal season of his career.
Anders Nilsson stopped 26 shots for New York, but the Ducks overcame two early deficits with another dominant performance. Anaheim improved to 11-0-2 at Honda Center, still the only NHL team without a regulation home loss this season.
PENGUINS 2, BLUE JACKETS 1
Marc-Andre Fleury stopped 32 shots for the Penguins, who won their sixth straight home game. Malkin extended his point streak to 10 games.
Malkin missed two games last week after being injured during a morning skate. He looked fine while bulling his way toward the net 4:16 into the second period for his eighth goal of the season. Crosby pushed his season-point total to an NHL-best 43 when he deflected in a shot by Pascal Dupuis midway through the third.
Matt Calvert scored with less than a minute left for Columbus, spoiling Fleury's shutout bid. Curtis McElhinney made 28 saves for the Blue Jackets, who have lost all three meetings this season with the Penguins by a combined score of 9-3.
The Blue Jackets had won three of four.
CANUCKS 2, HURRICANES 0
VANCOUVER, British Columbia (AP) — Eddie Lack made 31 saves in his first NHL shutout, and Vancouver beat Carolina.
With No. 1 goalie Roberto Luongo getting the night off, the rookie earned his fourth win of the season in his first appearance at Rogers Arena.
Justin Peters made 24 saves for Carolina (13-13-5), which had a three-game winning streak snapped.
SENATORS 5, FLYERS 4, SO
OTTAWA, Ontario (AP) — Jason Spezza scored the winning goal in the shootout to lift Ottawa over Philadelphia.
The Senators earned their first shootout win of the season after dropping their first four in the tiebreaker. Ottawa snapped a five-game skid at home,
The Flyers won the season series 2-0-1.