Sidney Crosby had a goal and three assists, Rickard Rakell had a goal and an assist, and Casey DeSmith made 29 saves for the Penguins (9-7-3), who swept a three-game road trip and are 5-1-1 in their past seven games.
Arvid Soderblom made 20 saves for the Blackhawks (6-9-3), who have lost four in a row, including 6-1 at the Boston Bruins on Saturday.
"It's frustrating," Chicago coach Luke Richardson said. "I know the guys must be really frustrated. They put a lot of work in. It was a much better game. I know we got down 3-0, but we were really happy with the way the guys were playing harder through their checks and their sticks and creating a lot more O-zone time for us, and unfortunately, we played from behind. That's really difficult, but give them credit.
"I don't think in the NHL you reward any kind of loss. … There are positives, for sure, compared to last night. Last night was one of the first nights we didn't seem to have the energy to put up that fight all game, even though it may have looked aesthetically a little better in the third."
Brock McGinn gave Pittsburgh a 1-0 lead at 1:04 of the first period, receiving a cross-ice pass from Rakell and scoring short side with a slap shot from the top of the left circle.
Malkin made it 2-0 at 2:27 of the second period when he beat Soderblom with a quick shot from the low slot off a pass from Ryan Poehling, who found him after circling the net.
"Oh, I think it means a lot to him," Penguins coach Mike Sullivan said. "This milestone is quite an accomplishment. There aren't too many players that play in this league that accomplish playing 1,000 games, never mind playing 1,000 games for a single franchise. We all know what 'Geno' means to the city of Pittsburgh and this organization and the legacy that he's built. I know it was a special night for him. His family was here to celebrate with him, which was terrific. I think it just makes the experience that much more memorable, the fact that we come out on the winning column, for sure."