Martin Erat, Nick Spaling, and Brandon Yip had the other goals for the Predators, and Pekka Rinne made 19 saves.
Mark Giordano, Blake Comeau, and Jarome Iginla scored for the Flames, who have dropped eight consecutive road games.
The Predators grabbed control with four consecutive goals beginning late in the first period and carrying over to the third. Nashville improved to 7-2-4 at home.
Fisher converted a nice feed from Erat to tie it at 2 in the first, then put Nashville in front at 13:24 of the middle period. Carrying the puck down the right side, Roman Josi threw a pass to Fisher on the left side, and he beat Miikka Kiprusoff for his ninth of the season.
"They were great plays," Fisher said. "Marty made a great play forechecking on that first one and I was right in the slot. Josi made a perfect play backdoor to me. I was just in the right place at the right times."
Just a minute later, Spaling deflected a slap shot from defenseman Victor Bartley by Kiprusoff for his sixth on the year. The assist was Bartley's first NHL point.
Yip provided another insurance goal at 15:54 of the third, and Iginla scored on a power play with one minute remaining.
"You look at the standings and how close they are, what a couple wins can do, and we've come on this road trip and haven't gotten those," Iginla said. "We know where we stand and how much time is left."
Giordano got Calgary off to a nice start with a short-handed goal at 5:01 of the opening period. Lee Stempniak forced a turnover by Josi and carried the puck in along the left side before finding Giordano above the left circle, where he fired a one-timer by Rinne for his third on the season.
Erat responded with a power-play goal at 11:36 when he redirected Josi's slap shot from the blue line by Kiprusoff, who finished with 18 stops.
"The most important thing is we got the two points," Erat said. "We had a couple of bad mistakes the last three, four games, and it happens. It is a long season and we bounced back today."
Calgary came up with another short-handed goal when Giordano made a nice pass from the left faceoff dot to Comeau, who was coming down the right side. He tipped the puck by Rinne for his fourth of the season at 13:05.
"It was the perfect scenario," Flames coach Bob Hartley said of the two short-handed goals. "I felt that we wanted to start with jump. We wanted to get the first goal, and that's exactly what we did. Giveaways simply killed us."
Nashville has allowed three short-handed goals in its last three games and four this season, equaling its total from the 2011-12 season.
"The thing that impressed me the most was that we didn't go into a shell," Nashville coach Barry Trotz said. "We've had a little bit of bad luck and a little bit of bad play that goes along with it. We didn't score first tonight. As I said before the game, I wanted to keep a positive spirit."
NOTES: Calgary D Jay Bouwmeester recorded an assist for his 300th career NHL point. ... Stempniak has a goal and five assists in his last four games. ... Fisher has points in five consecutive games, a season-long streak. ... Nashville C Craig Smith was a healthy scratch. It was the first game he has missed this season.