"Obviously it's no secret I've been having some struggles offensively," Bennett said. "It's nice to pot one tonight."
Johnson kept the Bruins at bay through the first 40 minutes of the game.
Patrice Bergeron fanned on his shot and the puck slid across to Pastrnak, who quickly fired but was stopped as Johnson came across to trap the puck under his skate at 8:02.
"I don't know if he shot it or it deflected off him, but there was the first shot and it hit a guy and it went to that side and then over to my left and back over again," Johnson said. "I just tried to get my leg over and ripped my groin. It was just instinct."
Johnson also stopped Matt Beleskey's one-timer at 16:40.
Bergeron fired the puck into an empty net with Johnson down 3:01 into the second period, but Flames coach Glen Gulutzan successfully challenged that Brad Marchand interfered with Johnson before the puck entered the net.
Johnson then stopped Marchand's one-timer from the edge of the crease at 11:04 as part of an 11-save period.
"I just think he's been fantastic," Gulutzan said. "I do give our guys credit, though, for limiting rebound chances against him. He's making the first save, which you need, and he's given us great goaltending there and then the guys are limiting those second chances. It's a good combination right now."
NOTES: Bennett also led the game with four hits. Calgary successfully killed all four Bruins power plays. Forward Mark Jankowksi and defenceman Jyrki Jokipakka were healthy scratches. Jankowski was recalled from Stockton of the American Hockey League on Friday morning. Forward Kris Versteeg did not play because of injury.
UP NEXT: The Flames visit the Philadelphia Flyers at Wells Fargo Center on Sunday (5:30 P MT; SNW, SN960).