Anaheim lost its second straight and fell into last place in the Western Conference.
"We need our best players to be our best players on a consistent basis," coach Bruce Boudreau said. "That's not happening right now."
Evander Kane, Jake McCabe and Jamie McGinn scored for the Sabres, who have won three of their past four games. Johnson got his first shutout since March 21, 2014, while playing for the Bruins. He set a franchise record for saves in a shutout, surpassing Ryan Miller's 43 on Feb. 29, 2012, against the Ducks.
"That's a big win for us," Johnson said. "I thought we played well. They had a lot of shots, but we were battling and defending."
In Boudreau's 300th game with the Ducks, Anaheim held Buffalo to 22 shots but couldn't get anything going. Its struggling power play failed to convert in three opportunities, making it five games and 13 chances without a score on the man advantage.
"It's frustrating," Ducks defenseman Hampus Lindholm said. "You feel like you have so many chances, but nothing connects, and nothing goes in the net."
The Sabres were playing their fifth game in eight nights. It was Anaheim's first game since Friday and the first of a stretch that sees the Ducks on the road for seven of eight.
Kane opened the scoring 2:36 into the second period. Jack Eichel sent the puck toward the Ducks' net, and it glanced off Kane's right foot and past goalie John Gibson for his seventh goal of the season.
McCabe, a defenseman, made it 2-0 with 6:25 left in the second period with his third goal of the season. He pinched in from the blue line, took a cross-slot pass from Cal O'Reilly and beat sprawled-out Gibson from the lower left circle.
McGinn made it 3-0 with 6:10 left in the third period.
Game highlights: Steve Mason made 36 saves and Michael Raffl and Sean Couturier scored, leading the host Flyers to a 2-0 win over the slumping Canucks. Vancouver lost its eighth in 10 games. Henrik Sedin, second on the Canucks with 31 points, left the game in the second period because of a lower-body injury. … Brandon Pirri had a goal and two assists, and the Panthers beat the host Devils 5-1.
Around the league: Senators forward Zack Smith was fined $2,000 for diving in the Dec. 10 game against the Lightning. The dive occurred at 9:28 of the first period, the league said. … The NHL's holiday roster freeze begins at 11:59 p.m. Saturday and runs through 12:01 a.m. Dec. 28.
First Period—None. Penalties—Larsson, Buf (cross-checking), 19:49.
Second Period—1, Buffalo, Kane 7 (Eichel, Reinhart), 2:36. 2, Buffalo, McCabe 3 (C.O'Reilly, Deslauriers), 13:35. Penalties—Manson, Ana (high-sticking), 6:56; Getzlaf, Ana (interference), 16:03; Larsson, Buf (delay of game), 19:32.
Third Period—3, Buffalo, McGinn 7 (Ristolainen, Gorges), 13:50. Penalties—Gorges, Buf (tripping), 3:08; Maroon, Ana (roughing), 14:58; Silfverberg, Ana (hooking), 14:58; Deslauriers, Buf (roughing), 14:58. Shots on Goal—Anaheim 14-11-19—44. Buffalo 8-8-6—22. Power-play opportunities—Anaheim 0 of 3; Buffalo 0 of 3. Goalies—Anaheim, Gibson 4-4-1 (22 shots-19 saves). Buffalo, C.Johnson 9-9-1 (44-44).
First Period—1, Philadelphia, Raffl 4 (Medvedev, Read), 16:45. Penalties—Hansen, Van, served by Vrbata (holding), 14:45; Weber, Van (interference), 17:09; Biega, Van (roughing), 17:46.
Second Period—None. Penalties—Dorsett, Van (elbowing), :35; Manning, Phi (embellishment), :35; White, Phi (high-sticking), 7:17; Bartkowski, Van (tripping), 11:05; White, Phi (hooking), 17:14; Giroux, Phi (interference), 18:16.
Third Period—2, Philadelphia, Couturier 5 (Simmonds, Voracek), 17:10. Penalties—Dorsett, Van (roughing), 13:19; Del Zotto, Phi (roughing), 13:19. Shots on Goal—Vancouver 12-16-8—36. Philadelphia 12-12-7—31. Power-play opportunities—Vancouver 0 of 3; Philadelphia 0 of 4. Goalies—Vancouver, Markstrom 1-3-2 (31 shots-29 saves). Philadelphia, Mason 6-8-4 (36-36).
First Period—1, Florida, Jokinen 7 (Pirri, Trocheck), 9:32 (pp). 2, Florida, Kulikov 1 (Jagr, Campbell), 12:00. Penalties—Huberdeau, Fla (slashing), :59; Kennedy, NJ (hooking), 6:36; Stempniak, NJ (tripping), 8:41; Ekblad, Fla (interference), 12:28.
Second Period—3, Florida, Pirri 7 (Knight, Shaw), 2:42. Penalties—Larsson, NJ (hooking), :25.
Third Period—4, Florida, Smith 10 (Trocheck, Jokinen), 7:28. 5, New Jersey, Kalinin 4 (Palmieri, Schlemko), 13:38 (pp). 6, Florida, Shaw 3 (Pirri, Knight), 15:16 (en). Penalties—Olsen, Fla (interference), 12:11. Shots on Goal—Florida 6-14-6—26. New Jersey 6-7-3—16. Power-play opportunities—Florida 1 of 3; New Jersey 1 of 3. Goalies—Florida, Montoya 5-1-1 (16 shots-15 saves). New Jersey, Schneider 14-9-4 (25-21).