Mason McTavish and Frank Vatrano also scored, Leo Carlsson had two assists, and Lukas Dostal made 21 saves for the Ducks (22-24-6), who have won four of their past five.
“We played pretty fast. I mean, both teams did, we just kind of capitalized on our chances," said McTavish, who has seven goals in his past six games. "We got off to kind of a slow start, but we battled back, so (I’m) proud of the group.”
Joel Armia and Christian Dvorak scored, and Sam Montembeault made 19 saves for the Canadiens (24-23-5), who have lost five in a row (0-4-1).
"We have to come out next game and have our best game of the season," Montreal captain Nick Suzuki said. "We can't be losing these games and falling back in the standings, so we really have to find a way to win the next two on this road trip."
The Ducks cut it to 2-1 at 13:37 of the second period when McTavish tipped a shot from Killorn past Montembeault.
“Just kind of instinct and reaction," McTavish said. "Just hand-eye I guess. I was able to tip it and just kind of found a hole.”