Chris Kunitz and Jonathan Toews also scored for Chicago, which has won 10 straight against Pittsburgh since losing 4-1 on March 30, 2014.
Patric Hornqvist, Jake Guentzel and Derick Brassard scored for the Penguins (23-13-6), who outscored their opponents 32-9 during the winning streak. Casey DeSmith made 26 saves.
Hornqvist put Pittsburgh ahead 1-0 2:43 into the game when he scored with a snap shot from the right face-off circle off a pass Evgeni Malkin.
"You have to give them credit," Hornqvist said. "They played hard. We couldn't find a way to put the puck in the net tonight. We played a hard game and we did some good things. Then we didn't do some good things."
Guentzel made it 2-0 at 4:33 of the first period. He tipped a Kris Letang shot before scoring five-hole on his own rebound.
DeBrincat cut the Penguins lead to 2-1 when he scored on a one-timer set up by Kane at 16:23 of the first with Malkin in the penalty box for hooking Drake Caggiula.
Kunitz tied it 2-2 at 6:46 of the second period with a snap shot around defenseman Marcus Pettersson from above the left hash marks for his first goal of the season.
Brassard gave Pittsburgh a 3-2 lead at 9:49 with a one-timer through the five-hole before Keith tied it 3-3 with a slap shot at 16:59. It was Keith's first goal in 46 games dating to April 4, 2018.
"I think that was a real positive," Keith said of Chicago winning after falling behind 2-0 and 3-2. "Finding ourselves a way to get back into it, crawling back into it and taking the lead in the end. Keeping it. We worked hard and got what we deserved."
Toews scored an empty-net goal with 27 seconds remaining for the 5-3 final score. He had an assist on Strome's goal to extend his point streak to six games (one goal, seven assists).