The Flames have won back-to-back games for the first time in five weeks. They will try for their first three-game winning streak of the season when they host Chicago next Tuesday.
Calgary overcame a two-goal deficit in the third period and then took the lead in the shootout when Jiri Hudler scored in the second round.
Roman Josi kept the Predators in the game with a goal in the third round, but Monahan promptly put Calgary back in front when he beat Devan Dubnyk
Reto Berra then stopped Ryan Ellis to give the Flames the win.
Eric Nystrom delivered a hat trick for the Predators and his third goal, coming with 9:13 left in regulation, gave Nashville a 4-2 lead.
Mikael Backlund and T.J. Brodie scored in the span of 1:11 to tie the contest.
Berra got the win after replacing starting goaltender Karri Ramo, who gave up three goals on 12 shots before being removed. Dubnyk stopped 27 shots in defeat.