MONTREAL -- The Carolina Hurricanes almost avoided the penalty box, but the one late trip they made cost them dearly.
Kostitsyn tipped Roman Hamrlik's shot from the left point in mid-air, redirecting the puck past Cam Ward with three seconds remaining in Jeff Skinner's holding penalty. That was Carolina's only infraction.
"That hurts," Hurricanes coach Paul Maurice said. "You've got to be able to play a smart game on the road and we got one at the wrong time and it's in the net."
Carolina, which is eighth in the Eastern Conference with 67 points, blew an opportunity to move within one point of the seventh-place New York Rangers.
Montreal, which has won two of three since a 1-4-2 skid, is sixth in the East with 73 points, eight ahead of ninth-place Buffalo.
"We lost some momentum in the second period but we were able to regroup in the third," said Canadiens captain Brian Gionta, who had a potential power-play goal disallowed moments before Kostitsyn's tally because referee Francois St. Laurent had blown his whistle.
Tomas Plekanec scored in the second period to reach 20 goals for a fifth straight season.
"My job is to score goals," said Plekanec, who was unaware that he is the first Canadiens player to have five consecutive 20-goal seasons since Stephane Richer had six in a row from 1985-86 to 1990-91. "Obviously it's nice to get those goals but my job is to play a two-way game, and if I had some goals, that's good."
Michael Cammalleri and Lars Eller scored in the first period, and Alex Auld made 28 saves for Montreal.
Cory Stillman scored midway through the second in his second game with the Hurricanes to tie it at 3.
Stillman, a key member of the Hurricanes' Stanley Cup championship in 2006 who was reacquired Thursday from Florida, snapped a wrist shot past Auld 10:49 into the second.
Jussi Jokinen got his 100th goal to give Carolina a 1-0 lead 7:25 in. Tuomo Ruutu also scored, and Ward made 23 saves for the Hurricanes, who have lost three of four (1-2-1).
Carolina captain Eric Staal didn't make the trip to Montreal because of an undisclosed upper body injury sustained Friday in a win over Pittsburgh. Staal left late in the second period after being leveled by Matt Niskanen.
"We expect him in the lineup Tuesday so unless something changes, he'll be back. He's fine," Maurice said.
Auld made his second straight start despite being pulled 13:02 into Thursday night's loss to Toronto after he allowed three goals on nine shots. All-Star goalie Carey Price was unable to start after missing the Canadiens' morning skate because of the flu, though he dressed as Auld's backup.
"I kind of got the word late last night that there was a chance and then this morning I was told to pretty much plan on it being my game, and that's the way I took it," Auld said. "Obviously, it's unfortunate this happened but at the same time for me it was really nice to get right back in. To get that next game and get a win and get it at home, obviously it feels pretty good."
Auld was caught out of position on Jokinen's goal, which opened the scoring 7:25 in. Jiri Tlusty took the puck off the Montreal goalie behind the net and fed a pass in front to Brandon Sutter, whose backhand hit the left post as Auld scrambled back in front.
Jokinen put the rebound into a gaping net for his 16th goal.
Cammalleri snapped a shot past Ward from the left circle at 13:48 for his 15th goal to tie it at 1.
Montreal took a 2-1 lead on Eller's fourth goal at 16:53. Ruutu tied it at 2 at 2:10 of the second with his 15th.
Plekanec restored the Canadiens' lead at 5:13 with a shot past Ward from the right side.
- The Hurricanes play 12 of their 18 remaining games at home.
- D Brent Sopel made his Canadiens debut after he was acquired Thursday in a trade with Atlanta.
- RW Ryan White and D Alexandre Picard didn't play for Montreal.