It was a matchup of streaks, and Montreal (6-3-2, 20 points) stretched its unbeaten streak to eight, including five straight on the road.
- MLS on ESPN+: Stream LIVE games, replays (U.S. only)
- Don't have ESPN? Get instant access
Charlotte (4-7-1, 13 points) had its four-game home winning streak snapped. Their dubious streak of failing to draw a point when conceding first continued, losing all seven of those contests.
Mihailovic opened the scoring as he ran unmarked into the heart of the Charlotte box to tap in Romel Quioto's squared pass, giving goalkeeper Kristijan Kahlina no chance. Quioto was subbed off for Kei Kamara following the goal after he went down hard on the pitch.
While Kahlina did not have a first-half save for Charlotte (4-2-0 at home), he finished with two saves on the night.
Montreal (3-2-2 on the road) survived an early injury scare when goalkeeper Sebastian Breza came off his line to foil a chance by Charlotte forward Karol Swiderski and took an inadvertent knee. He recovered and finished the game with three saves.
Breza was helped by the woodwork as well. Charlotte forward Andre Shinyashiki curled a shot past him but straight onto the post late in the half. Midfielder Alan Franco, who had shown good off-the-ball movement throughout the half, had the ball fall to him in the box, but he sent the ball skyward over the bar.
Charlotte threatened much more in the second half, but Montreal found the back of the net.
Alistair Johnston made it 2-0 in the 67th minute after Kamara found him running into the box. Johnston hit a bouncing shot off the far post for his first of the season to continue the best statistical season of his career.
Charlotte head coach Miguel Angel Ramirez had his team switch back to the 4-3-3 in the 76th minute, a strategy that got results against Inter Miami and in the Open Cup midweek.
The decision to switch back to the 4-4-2 they had utilized earlier in the season did not pay off as the midfield struggled to track runners defensively throughout the game.