Zach Whitecloud and Noah Hanifin scored, and Adin Hill made 19 saves for Vegas (25-9-3), which had won six straight.
“Kind of some self-inflicted plays,” Golden Knights coach Bruce Cassidy said. “We probably stopped playing halfway through the second the way we needed to keep pushing, and it caught up to us.”
Caufield cut it to 2-1 at 17:27 of the second period, scoring from the left circle after a Shea Theodore turnover.
Heineman redirected David Savard’s shot on net, then scored the rebound at 7:58 of the third period to tie the game 2-2.
Dach put the Canadiens ahead 3-2 at 10:09 when he skated in on a 2-on-1, toe dragged around a sliding Brayden McNabb and slipped with a backhand between Hill’s pads from the bottom of the left circle.
“They're learning what they're capable of, and it's not what you're capable of. It's what you're willing to do, right?” Canadiens coach Martin St. Louis said. “They're willing to sacrifice some of their individual stuff for the bigger cause, and you see it. The bench is so dialed in. Being behind the players on the bench, you can hear the guys what they say. They're so dialed in. They're all in it. It's fun.”
Whitecloud scored at 2:23 of the first to give Vegas a 1-0 lead. Tomas Hertl skated through the neutral zone and delivered a pass to Whitecloud, who finished with a snapshot.