Devin Shore had a goal and two assists, and Ben Bishop made 34 saves for Dallas (6-5-0), which has won three of its past four following a three-game losing streak.
The Stars were 0-3-0 on the road entering the game, which included a 4-2 loss to the Detroit Red Wings on Sunday that begin a six-game road trip.
"It's big. Obviously, we hadn't had a road win yet, so we'll take this and hopefully build on it," Bishop said. "That's a long road trip and we want to get points early and make those last couple of games a little bit easier."
WATCH: [All Stars vs. Canadiens highlights]
Brendan Gallagher scored, and Carey Price made 18 saves for Montreal (6-3-2), which has lost two of its past three.
"Bishop played a pretty good game. I thought he did a great job of stopping our good chances," Price said. "They obviously capitalized on a couple and that was all they needed."
Shore gave the Stars a 3-1 lead with a shorthanded goal at 9:27 of the third period. Radek Faksa stripped Artturi Lehkonen of the puck in front of the net and passed to Shore, who scored on a backhand in the slot.
"It's a 2-1 hockey game, we get a chance, we get a power play, and we go and get scored on," Gallagher said. "That can't happen."
Alexander Radulov, who missed the past four games with a lower-body injury, scored an empty-net goal at 17:23 to extend the lead to 4-1.
"I thought that was the best we've done so far in closing out a game," Stars coach Jim Montgomery said. "I didn't think we really gave them much after that."