Blake Coleman and Elias Lindholm scored, and Dan Vladar made 31 saves and stopped both attempts in the shootout for the Flames (15-4-5), who extended their road point streak to eight (6-0-2).
"We stuck around and got the extra point there in the end, so it's a big one," Monahan said.
Sonny Milano, Rickard Rakell and Vinni Lettieri scored, and John Gibson made 33 saves for the Ducks (13-8-4), who had won three of four.
"We have some room for improvement still and that's a good feeling to have," Rakell said. "We played good so far, but we have another level."
Vladar is 5-0-1 in six starts this season with a .939 save percentage. He has saved 86 of 89 shots in his past three games.
"Obviously it means a lot, but as I've said before, I don't want to get too high from it," Vladar said. "I go into every game, I know it's 0-0, and the other team, I'm pretty sure they don't care if I'm 5-0-1 or 0-6."
Lettieri scored on a one-timer from Trevor Zegras while on the power play to tie it 3-3 at 2:04 of the third period.
Lettieri was in the lineup because Ryan Getzlaf missed his second straight game with a lower-body injury. He's week to week.
"We came out and played much, much better in the third," Ducks coach Dallas Eakins said. "It was a good reset."