Ilya Kovalchuk scored for the Devils with 5:59 to play, preventing Price from posting his ninth shutout.
Darche deflected a backhand pass by Gionta from the left side boards midway through the first period to give Montreal a 1-0 lead to the roars of what seemed a Canadiens crowd in New Jersey.
Brodeur kept the Devils in the game in the second period but the Canadiens put the game away in the early minutes of the third.
Subban ripped a blue-line shot past Brodeur on a power play at 29 seconds with Andrei Kostitsyn providing a screen.
Darche got his 12th goal of the season at 3:34, once again deflecting a Gionta pass by Brodeur, who finished with 26 saves.
Kovalchuk got his 29th goal of the season in close with the Canadiens about to be called for a delayed penalty.