PITTSBURGH -- The Pittsburgh Penguins are nearly unbeatable when they get an early lead.
The Penguins needed the cushion Saturday, opening a three-goal lead before hanging on for a 4-3 victory over the Calgary Flames that ran their winning streak to seven games.
Center Sidney Crosby had a goal and two assists to lead the Penguins to their 10th win in a row at Consol Energy Center, the longest home winning streak in the NHL this season.
Left winger James Neal added a goal and an assist, and left wingers Pascal Dupuis and Harry Zolneirczyk also scored for Metropolitan Division-leading Pittsburgh (27-10-1).
Crosby extended his point streak to 10 games, the sixth double-digit streak of his career, and goaltender Mark-Andre Fleury stopped 26 shots.
The Penguins are 22-2-0 when scoring first this season. They have trailed for only 3:12 in the last nine games.
Calgary (13-17-6) got goals from centers Paul Byron, Mike Cammalleri and Jiri Hudler. The Flames finished a five-game trip with a 1-2-2 record.
Flames goaltender Karri Ramo allowed four goals on only 23 shots after Calgary had given up only 18 goals in their previous 10 games.
The Penguins opened the scoring with two goals in the span of 1:19 midway through the first period.
Dupuis backhanded in a rebound from the crease at 10:26 for his seventh goal of the season. Zolnierczyk then tipped in a slapshot by defenseman Robert Bortuzzo for his first goal to make it 2-0.
Dupuis had three goals and three assists during the Penguins' winning streak.
Byron got the Flames on the board at 6:58 of the second period when his slap shot hit Fleury's right skate and bounced into the net for his second goal.
Crosby got the goal back for the Penguins at 14:44 when he beat Ramo high to the glove side with slapshot on a breakaway for his 20th. The Penguins then made it 4-1 at 18:55 when left wing James Neal scored his 11th goal by tipping in a slapshot by defenseman Matt Niskanen.
However, the Flames scored only 19 seconds later to make it a two-goal game on Cammalleri's 11th goal of the season on a wrist shot.
The Flames got to within 4-3 at 2:35 of the third period when Hudler converted a pretty pass from center Matt Stajan for his 10th goal.
NOTES: Penguins backup G Jeff Zatkoff signed a two-year contract extension. The 26-year-old rookie is 6-2-0 with a 2.46 goals-against average in eight games this season. ... Flames LW Curtis Glencross sustained a lower body injury in the first period and did not return after crashing into the boards and landing awkwardly. ... Flames C Blair Jones, LW TJ Galiardi and D Christopher Breen were healthy scratches. ... Penguins C Evgeni Malkin (left leg) was scratched for a fourth straight game, although he did practice Friday. Also scratched for Pittsburgh were D Deryk Engelland (suspension) and C Brian Gibbons. ... The Penguins have lost 200 man-games to injury this season, the most in the Eastern Conference, but none of the three players on their top line -- C Sidney Crosby, F Pascal Dupuis and F Chris Kunitz --- have missed a game. ... Flames D Kris Russell played the 400th NHL game of his career. ... Calgary hosts the St. Louis Blues on Monday night, while Pittsburgh visits the Carolina Hurricanes.