Ilsinho recorded two assists for the Union, who improved to 10-3-4 (34 points). The Union set a franchise record with their sixth consecutive home victory. They had won five in a row on three separate occasions since 2010.
Amar Sejdic scored the lone goal for the Impact, who fell to 6-9-2 (20 points).
For the first 30 minutes, the play was a bit choppy in the rain with few scoring chances for either side.
The Union struck first in the 39th minute when Monteiro scored his first goal since last June for a 1-0 advantage. Monteiro received a crisp pass from Ilsinho and sent the ball past goalkeeper Clement Diop on the short side.
Montreal appeared out of sync for the most part offensively but did create three corner kicks in the first half.
The Impact had their best scoring opportunity in the 48th minute when Wanyama ripped a shot from about 18 yards out. Blake jumped and was able to barely tip the ball over the goal.
The Union countered quickly and Santos tapped in an easy goal in the 49th minute from Ilsinho for a 2-0 advantage. It was Santos' fourth goal of the season.
In the 65th minute, the Impact closed within 2-1 when Sejdic dribbled through a pair of Union players and fired a left-footed shot from about 25 yards out past Blake. This was the first career goal in Major League Soccer for Sejdic.
Philadelphia's Brenden Aaronson hit a strong shot inside the top of the box in the 81st minute, but Diop was able to stop the ball and clear it out.
Five minutes of stoppage time was added, but the Impact couldn't equalize.