Morrison had 9 goals and 34 assists in 66 games for the Flames last season. He arrived in Calgary just before the start of the season after being released from a tryout agreement with the Vancouver Canucks.
His 43 points were the most he had since the 2006-07 season, but his strong campaign was ended March 2 due to a left knee injury.
"Not only did Brendan fill a number of important roles for us on the ice last season but he was also a very valuable veteran presence in our locker room," Flames General Manager Jay Feaster. "His versatility, hockey sense and ability to fill so many roles throughout our lineup make him an important contributor, and we value his role as one of our on and off ice leaders.
"He made it clear throughout last season and again this summer that he wanted to be back with the Flames because he believes in the direction we are headed, and he believes in his teammates. While he won't be ready for training camp or the start of the season in all likelihood as he continues to rehab from off-season knee surgery, we nonetheless feel it is important to have him under contract and with the team as he continues his recovery. When he is cleared for game action we are confident he will make a significant impact to our success. We are a better and deeper team with Brendan back in the fold."
Morrison, 35, has 196 goals and 394 assists in 895 games with the Devils, Canucks, Ducks, Stars, Capitals and Flames.