The Canadiens, who lost 5-1 at Ottawa in their previous meeting, reversed their fortunes on home ice to move within one point of the Eastern Conference-leading Boston Bruins.
Despite falling behind 1-0 after Jakob Silfverberg's power-play goal just one minute 38 seconds into the game, Montreal's David Desharnais and Erik Cole responded with first-period goals.
Max Pacioretty gave Montreal (6-2-0) a boost by returning to the line-up eight days after having his appendectomy removed and assisting on the team's equalising goal.
"I look at adversity as a good thing," Pacioretty said. "I've had to deal with a lot in my career, whether it be injuries or getting sent down. "It's made me the player and the person I am and I'm thankful to have got all these opportunities."
PK Subban, playing in his second game since he ended a contract holdout, assisted on Montreal's winning goal.
Craig Anderson made 30 saves to keep the Senators (5-3-1) afloat but they ultimately fell to their Northeast Division rival.
Ottawa is still missing center Jason Spezza, out with a back injury, and it showed in their lack of offense.
Still, the Senators thought they had tied the game early in the third period but an apparent goal by Andre Benoit was waved off because of goalie interference.
"We didn't think it should have been waived off but that's the way it goes," said Ottawa's Daniel Alfredsson. "We still had some good chances after that. It wasn't to be."