The hosts raced out of the blocks, taking the lead after just four minutes as Kamal Miller headed home at the back post from a beautiful Djordje Mihailovic delivery.
But from there, Atlanta United got a foothold and took the game to Montreal. Goalkeeper Sebastian Breza had to be alert to deny long-range efforts from Marcelino Moreno and Thiago Almada, while the Montreal defense worked hard to keep the Five Stripes at bay.
Atlanta finally made the breakthrough in the 51st minute when Moreno picked up the ball on the far side, skilfully beat Joaquin Torres, and fired a cheeky finish in off the near post.
Both sides continued to trade blows, but it was Montreal who landed the winning punch, with Torres making amends with a header inside the box after some great work from Miller, who was excellent at both ends of the pitch.
The result lifts Montreal above and three points clear of Atlanta United in the Eastern Conference standings, with both teams experiencing a turnaround in form.
Read on for full player ratings from Saputo Stadium:
1. CF Montreal (3-4-2-1)
GK: Sebastian Breza - 6/10 - Caught out by a cheeky Moreno finish but made a few good saves otherwise to deny Atlanta.
CB: Joel Waterman - 5/10 - Incredibly wasteful with the ball.
CB: Rudy Camacho - 7/10 - Aggressive and no-nonsense defensively. Almost scored in the second half but his rebounded effort was cleared off the line by Gutman.
CB: Kamal Miller - 9/10 - Opened the scoring with a towering header and got through a lot of defensive work. Completed a superb performance with the assist for Torres' winner, looking like an up-and-coming winger with his run and cross.
RWB: Alistair Johnston - 6/10 - Did okay defensively but was pinned back by Gutman, making him ineffective further forward.
CM: Ismael Kone - 5/10 - A mixed afternoon, with some nice touches and others a little more wasteful.
CM: Victor Wanyama - 8/10 - Commanded the midfield for Montreal with some precision passing, strong running, and relentless defending.
LWB: Lassi Lappalainen - 6/10 - Played a lot more in Atlanta's half than Johnston, but lacked the final ball.
CAM: Ahmed Hamdi - 3/10 - Looked off the pace and barely got into the game. Replaced at half-time.
CAM: Djordje Mihailovic - 8/10 - Another brilliant set-piece delivery for the goal and was a constant menace for Montreal. The USMNT shouts get a little louder.
ST: Romell Quioto - 4/10 - Had to come deep to get on the ball, didn't test the Atlanta United center-backs much.
SUB: Joaquin Torres (46' for Hamdi) - 7/10 - Was beaten by Moreno for the equalizer but made up for it by heading home the winning goal.
SUB: Samuel Piette (68' for Kone) - 6/10 - Offered some much-needed mettle to the Montreal midfield.
SUB: Kei Kamara (74' for Quiotto) - 6/10 - Made it a bit more physical for the Atlanta United defense and caused some problems.
SUB: Zachary Braut-Guillard (74' for Johnston) - Was solid and lively in his short cameo.
SUB: Zorhan Bassong (83' for Lappalainen) - 5/10 - Didn't have time to get involved.
2. Atlanta United (4-3-3)
GK: Bobby Shuttleworth - 6/10 - Made a couple of good saves and needed more protection for the goals. Bailed out by a Gutman clearance in the second half.
RB: Brooks Lennon - 7/10 - Strong defensively and looked to get forward at every opportunity.
CB: Alan Franco - 1/10 - At fault for both goals, ball-watching rather than attacking Mihailovic's cross and leaving Torres free in front of him. Looked on the edge of a mistake all afternoon.
CB: Miles Robinson - 7/10 - Nothing got past Robinson, who was clean and progressive with the ball.
LB: Andrew Gutman - 6/10 - Did well defensively with a vital goalline clearance and got into some good attacking positions, but lacked composure with the ball.
CM: Matheus Rossetto - 6/10 - Clean and tidy with the ball but perhaps could have upped the tempo.
CM: Franco Ibarra - 6/10 - Won a lot of duels and defended well but didn't offer enough with the ball.
CM: Marcelino Moreno - 8/10 - A beautiful bit of skill to bring Atlanta United level and constantly looked to take the game to Montreal. Ran down a lot of dead ends but kept at it.
RW: Luiz Araujo - 4/10 - A lackluster return to the starting XI with some wild shots off target and a lot of runs into traffic. Araujo never found his range but it's only a matter of time, once he regains full fitness.
ST: Ronaldo Cisneros - 5/10 - Made a lot of runs but was largely starved of service.
LW: Thiago Almada - 8/10 - Popped up all over the pitch, making driving runs, smart passes, and taking dangerous shots at goal. An incredible talent who looks on the verge of exploding into life.
SUB: Jake Mulraney (80' for Araujo) - 2/10 - Came on and was immediately roasted by center-back Miller for Montreal's winner.
SUB: Jackson Conway (85' for Ibarra) - 4/10 - Thrown on straight after Atlanta United went behind and missed a difficult chance, getting down low and heading wide when he should have gone with his foot.