The 35-year-old Morrison will make $1.25 million next season, the team announced Friday.
Morrison's 2010-11 season ended in March because of a knee injury that will keep him out of action through the start of 2011-12.
The veteran had nine goals and 34 assists in 66 games with Calgary last season.
Flames general manager Jay Feaster said, "We are a better and deeper team with Brendan back in the fold."
Morrison has 196 goals and 394 assists in 895 career games with New Jersey, Vancouver, Anaheim, Dallas, Washington and Calgary.