Drew O'Connor put Pittsburgh ahead 1-0 at 15:32 of the first period. Malkin went around St. Louis defenseman Scott Perunovich along the far wall to collect a loose puck before passing to O’Connor for a one-timer in the slot.
Valtteri Puustinen appeared to extend the lead to 2-0 on a wrist shot from the left face-off circle at 19:30 but was called for high-sticking just before the goal.
Thomas then scored on the ensuing power play, tying it 1-1 at 1:06 of the second with a one-timer from a sharp angle.
"We were right in it until the end," Thomas said. "We were right in it. It was a tough back-to-back. We did a good job of keeping ourselves in the game and giving ourselves a chance to win."
Malkin gave the Penguins a 2-1 lead with a power-play goal at 6:50 when a shot from Guentzel redirected in off his skate at the right post. Malkin has 14 goals this season, including three in his past two games.
"He’s playing great right now," Guentzel said of Malkin. "He’s a special player. He’s an all-time great player. It’s just fun to watch him right now. He’s scoring some big-time goals for us right now. Hopefully, it keeps coming."
Jeff Carter made it 3-1 at 4:48 of the third, tapping in a pass from Jansen Harkins above the crease as Hofer returned to the net after sending the puck along the boards.
"Third periods are huge in tight games like that," Harkins said. "We’ve got to be able to hold on to leads and be able to build on a lead. We can't really let it go down to the wire. So, I think it was a really big goal. Our moment to step up and help the team out."