Ryan O'Reilly had two assists, and Jordan Binnington made 31 saves for the Blues (21-19-6), who won the final two of the three-game set and moved one point ahead of the Arizona Coyotes for fourth place in the Honda West Division. The top four teams will qualify for the Stanley Cup Playoffs.
"It's nice to bring results, but we've just got to keep pushing," Perron said. "I just like the way we played in the second period, to be honest. Obviously, the first as well, but we've been talking about it for a while now, and we finally got that second period that we wanted."
Nathan MacKinnon scored to extend his point streak to 14 games for the Avalanche (31-11-4), who have lost two in a row in regulation for the second time this season. Jonas Johansson made 16 saves.
Colorado, which went 5-3-0 against St. Louis this season, remained one point ahead of the Minnesota Wild for second in the West with one game in hand.
"We've got to be better than that for 60 minutes if we want to win at this time of year," Avalanche coach Jared Bednar said.
Vladimir Tarasenko scored a power-play goal from the top of the crease at 9:25 of the first period to give the Blues a 1-0 lead.
"I think he's a big body, he's got good hands around the net," St. Louis coach Craig Berube said. "For me, it's about him getting inside and being around the net a little bit more, and that's what's going to happen. He's a smart guy around there. He knows where to go and what to do and if you look at the League, you look at all the top power-play scorers in the League, they're at the net front or in the slot. There's a couple guys, (Alex) Ovechkin to name one, maybe another guy that's on the flank that are up and on top in scoring in the League, but guys that score goals on the power play are around the net."