Pearson tied it 4-4 at 9:33 of the third period on a one-timer short side, and Kessel gave the Penguins their first lead, 5-4 at 10:21 after getting his own rebound in front following a turnover by Ducks defenseman Jacob Larsson.
Pearson extended the lead to 6-4 at 16:35, and Guentzel completed the hat trick with an empty-net goal with 58 seconds left to make it 7-4.
Nick Ritchie gave the Ducks a 1-0 lead at 1:27 of the first period when Ondrej Kase's cross-crease pass redirected off his stick and Penguins defenseman Jack Johnson's skate into the net.
Getzlaf scored to make it 2-0 at 7:41. The goal ended an eight-game streak without a point (his longest in the NHL).
Daniel Sprong, who was acquired by Anaheim in a trade with Pittsburgh on Dec. 3, made it 3-0 at 12:23.
Malkin scored 59 seconds into the second period to make it 3-1.
"To get that one early in the second … that was good to get that one early and give us some life," Penguins captain Sidney Crosby said. "We played a pretty good game. I know it was 3-0, but we still felt like we did some good things in the first period."
Guentzel cut it to 3-2 at 4:54, scoring five-hole off a cross-ice pass from Brian Dumoulin. He tied it 3-3 at 11:24 with a rebound in the slot on the power play.
"We stopped playing," Getzlaf said. "They're a good hockey club. They're not going to let us win. We came out a little flat, started taking penalties, started running around in our zone and not making strong plays in crucial times."
Jakob Silfverberg gave the Ducks a 4-3 lead with a shorthanded goal at 14:39. Henrique stole the puck from Malkin in the neutral zone and passed it ahead to Silfverberg, who scored glove side on a breakaway.
"We just stopped playing," Ducks coach Randy Carlyle said. "It looked like we were out of gas. They were in a faster gear than we were. It seems like when we have to reach back for more energy or stiffness with our group, we're unable to do it. We just seem to be lacking energy."