PITTSBURGH (AP) - Sidney Crosby scored his 20th goal of the season Saturday, helping the Pittsburgh Penguins win a season-high seventh straight game with a 4-3 victory over the Calgary Flames.
The Penguins led 4-1 late in the second period and had to hold off the Flames for their 10th straight win at home and 12th victory in their last 13 games.
Crosby, who had a goal and two assists, extended his season-high 10-game point streak. He leads the league with 54 points.
Pascal Dupuis added his seventh of the season, Harry Zolnierczyk scored his first with the team and James Neal also had a goal for the Penguins.
Mike Cammalleri scored his first goal in nine games for the Flames. Jiri Hudler netted his 10th of the year and Paul Byron had the other goal.
The Flames have lost four straight and six of their last nine.
Pittsburgh jumped to a two-goal lead and went up 4-1 after goals from Crosby and Neal. But Calgary scored twice _ Cammalleri with 45 seconds left in the second period and Hudler 1:03 into the third period to make it 4-3.
The Flames came up empty on an ensuing power play and continued to press for the tying goal. Their best chance came with 6:25 remaining when Joe Colborne hit the post to the right of goaltender Marc-Andre Fleury, who won his 21st game of the season.
The Penguins played without star center Evgeni Malkin and five of their top six defensemen for the fourth straight game. Malkin, who injured his left leg last Saturday at Detroit, skated the past two days, and could return after Christmas.
Dupuis and Zolnierczyk scored 1:19 apart midway through the first period, staking the Penguins to an early two-goal lead. The Penguins are a league-best 22-2 when scoring first.
Crosby set up the first goal with a turnaround shot from the top of the crease. The rebound squirted to the slot where Dupuis finished it off with a backhander into an open net. Zolnierczyk struck less than 90 seconds later, tipping Robert Bortuzzo's cannonading blast behind Flames' goaltender Karri Ramo.
Byron scored for the Flames on the board seconds after a Penguins' power play expired midway through the second period. Byron's shot from the point hit the post and bounced off Fleury before trickling across the line.
Crosby put the Penguins ahead by two again later in the period during a 4-on-4. Crosby created space for himself at center ice, flipping the puck past Flames' D T.J. Brodie before ripping a slap shot to the top-left corner and past Ramo.
Neal tipped Matt Niskanen's shot behind Ramo with 1:05 left in the period, making it 4-1. But Calgary started its comeback when Cammalleri scored his 11th of the season 20 seconds later.
Penguins defenseman Rob Scuderi (broken ankle) and forward Tanner Glass (broken hand) could return soon during an upcoming stretch in which Pittsburgh plays seven of its next nine on the road. Additionally, Penguins defenseman Brooks Orpik passed a concussion test Friday and practiced for the first time since Dec. 7 when he was pushed to the ice by Bruins forward Shawn Thornton. Thornton, who punched Orpik while he was down, was suspended by the NHL for 15 games.
The Flames, who just finished a five-game road trip, could be without two key players when they return to Canada for a five-game homestand that starts Monday against St. Louis.
Assistant captain Curtis Glencross left early in the first period, injuring his left knee after an awkward fall into the boards. Glencross, who needed assistance to the dressing room, remained on the ice until the whistle, but couldn't put weight on his leg. Flames defenseman Kris Russell, playing in his 400th career game, also left in the third period with a leg injury.
NOTES: The Penguins signed backup goaltender Jeff Zatkoff to a two-year contract extension. ... The Flames scratched Blair Jones, T.J. Galiardi and Christopher Breen; Brian Gibbons sat for Pittsburgh. ... Pittsburgh travels to Ottawa on Monday.