B.C. scored the fewest points in a game in almost three decades in a 23-6 home loss to Winnipeg in Week 5. Trailing Calgary by 11 points at the half Friday, the Lions offence came to life.
Andrew Harris rushed for a four-yard touchdown and Ernest Jackson scored on a 65-yard catch in the fourth quarter to claw out the victory.
B.C. improved to 3-3 and handed the Stampeders their first loss of the season. The Winnipeg Blue Bombers top the West Division at 5-1 ahead of Calgary at 4-1.
Cornerback Ron Yell scored a touchdown for the B.C. defence by running back a 35-yard interception in the first quarter. Kicker Paul McCallum was good from 45 and 21 yards in the game.
Former Stampeder Kevin Glenn completed 22 of 32 passes for 277 yards and a touchdown in his return to McMahon Stadium. He was intercepted once.
"It's a big emotional win from last week to this week, to do what we did against this type of team," Glenn said.
"It was a big character win for us and I think this is what we needed, against this type of team and this kind of atmosphere and environment. We were down 11 points at halftime and we fought back in the second half to come away with a victory."
Glenn quarterbacked Calgary to 20 wins in two seasons, including a trip to the Grey Cup in 2012, before he was claimed by Ottawa in the expansion draft. He was dealt to B.C. earlier this year.
But in the decade before joining the Stampeders, the 35-year-old had never won at McMahon as a visiting quarterback until Friday. His record is now 1-8 wearing enemy colours in Calgary.
Stampeder QB Bo Levi Mitchell made 21 of 31 pass attempts for 227 yards and a touchdown. His first interception this season was costly as Yell parlayed it into a touchdown in the first quarter
Calgary defensive back Keon Raymond picked off his former teammate in the second quarter for a 63-yard touchdown. Marquay McDaniel had an 18-yard touchdown catch and backup quarterback Drew Tate capped a scoring drive with a one-yard dive.
Rene Paredes was good on his one 35-yard field-goal attempt in front of an announced 27,266.
Harris's four-yard scoring run at 5:01 of the fourth quarter pulled the visitors within two points. B.C. failed on their two-point convert attempt.
Paredes gave the hosts some breathing room at 9:02, but Glenn combined with Jackson for the eventual winning touchdown at 13:28.
The Stampeders pushed into B.C. territory in the final minute for the winning field goal, but Calgary turned the ball over on an Anthony Parker fumble.
"I was not disappointed with the way we played," Mitchell said. "We lost the game though so there's obviously things we've got to do better.
"I thought we had control the entire time. There were some small things in the end that we let go."
Harris finished with 70 yards on 15 carries.
"We just had to man up a little bit," the CFL's leading rusher said. "A lot of times we'd look around for someone else to make the play and we decided to collectively get it together. It wasn't a pretty win, but we got together and made it happen."
"This game was a must-win for us. To knock off an undefeated team that's the best in the CFL, we weren't playing so well last week, so to win this on the road against the best team we're feeling pretty good about it right now."
Martell Mallett rushed for 116 yards in his first CFL game since 2009 when he was Lion. He was named the league's rookie of the year. He filled in for halfbacks Jon Cornish and Matt Walter, who are both out of the lineup with concussion symptoms.
Cornish, the CFL's most outstanding player and leading rusher in 2013, is on the six-game injured list. Mallett averaged 10.3 yards on 10 carries and fumbled the ball once.
"I feel like I did OK, but there was a lot I left on the field," Mallett said. "I wanted to come out and get a 'W". I didn't want to come back in the locker room 4-1 after my first game. I wanted to come in 5-0.
"That didn't happen. I have to get better as an individual and we have to get better collectively."
The Lions host the Hamilton Tiger-Cats next Friday with the Stampeders at home to the Ottawa Redblacks the following day.