Stempniak will earn US$5 million, while Sarich agreed to a deal worth $4 million.
Stempniak scored 14 goals for 28 points in 61 games for Calgary last season. In 517 career games, he has logged 129 goals and 275 points.
"We believe Lee continues to have strong upside offensively, and he has demonstrated that he can be responsible at both ends of the ice," said Flames general manager Jay Feaster in a statement.
"His skating style and willingness to get in on the forecheck will fit-in nicely with (coach) Bob Hartley's up-tempo style, and he provides the coaching staff with more options on the power play."
Originally drafted by St. Louis in 2003, Stempniak has also played for Toronto and Phoenix. He was acquired by Calgary in exchange for Daymond Langkow last August.
Sarich is the second defenceman to agree to a deal with Calgary this week after the team acquired Dennis Wideman from the Washington and negotiated a US$26.25-million, five-year contract Tuesday.
Feaster said he wanted Sarich back because the club liked his physical presence on the blue-line.
"Cory is a true competitor who plays the game the right way, with fire and grit," he said. "We are thrilled to have Cory back in the fold on a contract that fits within our plan and enables us to continue to improve our hockey team."
Sarich, a 13-year NHL veteran, has 20 goals and 126 assists in 887 career games while spending time with Buffalo, Tampa Bay and Calgary.
He joined Calgary as a free agent in 2007, and had one goal and six assists in 62 games with the Flames last season.
The Flames also signed centre Blair Jones to a two-year deal worth $1.3 million.
The 25-year-old had three goals and five assists in 43 games with Calgary and Tampa Bay last season.