Heinen tied it 1-1 at 2:37 of the second period. After Drew O'Connor's shot on the rush hit the post and bounced off Kuemper, Heinen reached behind the goalie and poked the puck in.
Johansson gave the Capitals a 2-1 lead at 5:17 of the third period when he received a drop pass from Backstrom and scored to the far side with a wrist shot from the top of the left circle.
"It was a great played by Nick and I just tried to get as much ice as possible before I shot it, and I think it got lucky bounce and nicked off of [defenseman Brian Dumoulin], but I'll take it," Johansson said.
Rust tied it 2-2 when he scored over Kuemper's left shoulder from the right circle on the rush at 12:52.
"We've done a pretty good job of just fighting and battling. It's a nightly thing," Crosby said. "We've got to make sure that we're consistent, but we've been competing hard and finding ways and we've got to find another level here going into the stretch run."
NOTES: Washington forward Conor Sheary, who began his career with Pittsburgh, played 18:09 and had three shots on goal in his 500th NHL game. … The Capitals have not lost three straight regulation games this season. … Crosby had an assist and has 10 points (two goals, eight assists) in his past six games. … Rust has 300 NHL points (135 goals, 165 assists) in 472 games.