Semyon Varlamov made 12 of his 28 saves in the third period for the Avalanche (28-25-11), who have won six of their past nine games and are eight points behind the Minnesota Wild for the second wild-card spot in the Western Conference.
"It's a big win," said Nathan MacKinnon, who scored a second-period goal for a 2-0 lead. "Our goal is 28 more points. We have 18 games left and it's going to be tight, but we feel we're confident this month that we can get some wins. We have to get rolling."
The Penguins (36-18-9), who had won four games in a row, opened a four-game road trip through the West.
"We didn't make things as difficult as we should, but when we did get some good chances (Varlamov) made some key saves," said Penguins center Sidney Crosby, who didn't have a shot on goal. "We would have liked to put more pressure on him, but he did make some good saves when he needed to.
"Getting through the neutral zone, getting out of our zone, it just wasn't clean, so it was tough to enter with a lot of speed. You're either making bad passes or they're intercepting them. It was hard to get any real flow."
The Penguins, who outshot the Avalanche 13-4 in the third period, pulled within 2-1 at 9:45 on a goal by Evgeni Malkin, who stole the puck from Colorado's John Mitchell and beat Varlamov from the slot. Malkin has six goals and six assists in a six-game point-scoring streak.
"They kept coming, kept coming," Landeskog said. "Obviously playing a team with that much offensive skill, you have to be on your toes every shift. We let up one shift and Malkin goes down and scores."
Landeskog responded with a goal at 14:57 for a 3-1 Avalanche lead. Ryan O'Reilly passed to Landeskog, who moved around defenseman Derrick Pouliot, skated in front and shot the puck by goalie Marc-Andre Fleury's left pad.
"It was kind of a one-on-one and he was coming on my side," Landeskog said of Pouliot. "I felt him coming towards me and I cut back and I kept going. Low blocker usually works on left-handed goalies, so I tried that tonight and it worked."
Said Avalanche coach Patrick Roy: "That was a heck of a move. He made a real nice move in front of Pouliot. It was a great play by him. We played really well, especially the first two periods. They pressed a little bit hard in the third, but we responded well."
Fleury, who made 19 saves, went to the bench for a sixth skater with 2:27 remaining.
"We needed someone to get us going," Penguins coach Mike Johnston said. "We had some jump in the third period, but (Malkin) took it to another level on a couple of those shifts. The one he scored on, the one he almost scored on where he came in all alone, his skating lately has been really good, he protects the puck well in the offensive zone. He looked like he was going to try to take charge of that third period."
The Avalanche got goals from Jarome Iginla and MacKinnon in the second period to take a 2-0 lead.
Iginla opened the scoring 13 seconds into the period with a power-play goal. Landeskog passed to Iginla, who skated into the Penguins zone and took a shot from above the right circle that beat Fleury to the far corner.
"Gabe gave me a nice pass across ice," Iginla said. "Maybe they didn't expect that play. They had a little bit of a gap and I was able to skate right in. You don't usually shoot that one, but when you're that close I tried to use [the defenseman] as a bit of a screen. Going full speed you're going right in. Fortunately it went in low bottom post."
Iginla reached the 20-goal mark for the 16th time in his NHL career and tied Bobby Clarke for 43rd place on the all-time list with 1,210 points. The goal ended the Avalanche's 0-for-11 slump on power plays covering parts of three games.
MacKinnon scored at 14:29. Landeskog passed across to defenseman Jan Hejda, who took a shot from the left circle that MacKinnon tipped in from in front of the net.
"It's fun to score in this League, especially when you haven't done a whole lot this season," MacKinnon said. "It turned out to be a big goal. Jan made a great pass and it kind of went off my foot. Maybe it was on my stick. I just went to the net."
Avalanche left wing Alex Tanguay was honored in a pregame ceremony before playing in his 1,000th NHL game.