Neagle got his second goal of the season to put Montreal (11-13-3) ahead 2-1 in the 61st minute. Both teams played most of the game with 10 aside, while San Jose ended with just nine men.
Bernier, who set up Neagle's score, got his team-leading seventh goal on a penalty kick in the 73rd minute. Marco Di Vaio scored for Montreal in the first half.
''We're happy with the way we are playing,'' Di Vaio said. ''We're playing with confidence, creating space and playing well together. We played a big game.''
Earthquakes captain Chris Wondolowski scored his league-leading 18th goal on a penalty kick in the 23rd minute to give the Earthquakes (14-6-5) a 1-0 lead.
Both teams were down a man from the 21st minute. San Jose's Steven Lenhart and Impact defender Hassoun Camara were both shown red cards in the first half after a flare-up inside the 18-yard box.
The Earthquakes were awarded a penalty after Camara struck Lenhart with a blow to the head, which got him ejected. Lenhart was sent off for retaliating.
''I warned him (Friday) that Lenhart is like that,'' Impact goalkeeper Troy Perkins said. ''He's going to kick you, he's going to punch you when no one's looking and you've got just got to be able to take it and tell the referee, you've got to look out for it.
''In all fairness the referee gives them both a red card but unfortunately it was in our own box.''
Wondolowski took advantage as he pounded a shot past Montreal goalie Troy Perkins into the left side of the net.
Di Vaio drove to the net and slid in to finish off Felipe Martins' centering pass to tie the score in the 25th minute.
Bernier set up Montreal's go-ahead goal with a pass back to Neagle, who drove a shot past San Jose goalkeeper Jon Busch into the right side of the goal.
The Earthquakes lost another player after Jason Hernandez was given San Jose's second red card of the game in the 71st minute.
''Hats off to Montreal,'' Earthquakes coach Frank Yallop said. ''I'm not going to say we would have won the game. I thought we were doing OK with 11-on-11, but they won the game so well done to them. They took advantage - we had nine men after the penalty kick and it was a tough one.''
Bernier took the penalty after Di Vaio was hauled down by Hernandez. He hesitated as he approached the ball and calmly put a shot past Busch into the right side of the goal.