Jakob Silfverberg and Ben Street scored, and Ryan Miller made 29 saves in his first start for the Ducks (4-1-1), who won for the first time in three games.
Anaheim rebounded from a 5-3 loss at the Dallas Stars on Saturday, when they blew a 3-0 in the second period.
"We pinpointed a few things that needed to get taken care of," Cogliano said. "We needed a fix. I thought we did it tonight, for the most part. It was a really gutsy effort by our team, and I thought it was probably the biggest win of the year so far. It was an important game for us. I think it showed."
Tyler Bozak and Alexander Steen scored, and Johnson made 28 saves for St. Louis (1-2-2).
The Blues have blown a third-period lead in back-to-back games and in three of the past four. They're 0-1-2 in those games.
"We're doing a good job of getting back when we get down and getting in that lead," Bozak said. "Unfortunately, we're not holding it. I think whenever you have that lead, especially in the third, you should be able to hold on. We've just got to bear down harder and make some harder plays in the third."
Street tied the game 2-2 at 7:16 of the third when he redirected Josh Manson's shot from the point.
The Blues scored twice in the second period to take the lead. Steen tied it 1-1 on a tip of Joel Edmundson's shot from inside the blue line at 11:49. Bozak scored on the power play from the low slot to make it 2-1 at 15:52. It was his first goal for St. Louis after signing as a free agent July 1.
The Ducks took a 1-0 lead with 1:39 remaining in the first when Silfverberg scored on a breakaway after a shot block in the Anaheim zone.
Silfverberg left the game at 2:43 of the third period with an upper-body injury.