Sidney Crosby and Jason Zucker each had a goal and two assists, Evgeni Malkin had four assists, and Matt Murray made 23 saves for the Penguins (38-21-6), who had been outscored 24-8 in six straight regulation losses. Pittsburgh moved within one point of the second-place Philadelphia Flyers in the Metropolitan Division.
"There was a lot of collective, cooperative effort out there," Penguins coach Mike Sullivan said. "Guys finished. They were on the puck. They had some quality chances, and they finished. You've got to give the players credit."
WATCH: [All Senators vs. Penguins highlights]
Craig Anderson made 28 saves for Ottawa (23-32-12), which had won its previous two games.
"I didn't think we played a smart game," Senators coach D.J. Smith. "I think we tried to come back. We made it 5-3. We had good effort in the third period, just we were careless with the puck. We hung [Anderson] out to dry."
Crosby reached 800 NHL assists in 980 games. He is the 32nd player in League history to achieve that milestone.
"It's a nice number," Crosby said. "I mean, it took long enough here. So glad I got it, and try to move on."