Jason Spezza and Zach Hyman scored to help Toronto snap a three-game losing streak and win for just the second time in eight games.
''Just a really gritty effort by the group,'' Spezza said. ''(Campbell) coming in, shutting the door, he made a lot of big saves.''
Starting for just the second time since suffering a leg injury against the Flames in Calgary on Jan. 24, Campbell provided Toronto with a much-needed performance in the crease after a string of shaky outings from struggling No. 1 option Frederik Andersen.
''It's been a frustrating season personally,'' Campbell said. ''But I felt really confident.''
David Rittich stopped 31 shots for Calgary. The Flames beat the Maple Leafs 4-3 on Friday night.
''I would rather say I outplayed Jack Campbell, but he outplayed me,'' Rittich said. ''He was really good.''
Toronto scored first for just the second time in its last eight games when Spezza snapped in his seventh - and second in two nights - with 1:29 left in the first period. He controlled a bouncing puck down low before firing upstairs on Rittich.
Hyman scored with 3:32 left in the second. With Morgan Rielly driving hard through the middle and occupying two Flames, Hyman took the puck around the net and fired a shot past Rittich for his 11th of the season.
Campbell had his fourth career shutout.
''We have a ton of confidence in him,'' Hyman said about Campbell. ''He saved every shot, so it makes our life a lot easier.''
Campbell was backed up by Michael Hutchinson as the Maple Leafs gave Andersen the night off. Since returning from a lower-body injury this month, Andersen is 2-5-0 with an .876 save percentage.
Flames: At Ottawa on Monday and Wednesday nights.
Maple Leafs: At Ottawa on Thursday night.
Copyright 2022 STATS LLC and Associated Press. Any commercial use or distribution without the express written consent of STATS LLC and Associated Press is strictly prohibited.