Nashville remained one of the last remaining unbeaten teams, along with Ottawa, at 5-0-0.
"I still don't think we're played our best game," said Johnson, who scored an empty-net goal. "I still feel like we can improve. But we're getting a little better every game."
The Predators won at St. Louis for the first time since Jan. 4, 2001, going 0-8-1 since.
"I think it was a combination of things. The Blues were deeper than we were and maybe a little tougher, and their power play was unbelievable," Nashville coach Barry Trotz said. "But in the last 18 months, the climate's changed a little bit."
St. Louis coach Mike Kitchen credited the Predators for the way they have built their team for the new season.
"They've got a lot of youth and energy in their lineup," he said. "They've added some veterans in Kariya and Perreault which beefs up their offense. They're a pretty solid team."
St. Louis, 1-4-0, is off to its worst since 1977-78 when it lost its first six games and went 0-8-1 before getting a win.
The Predators took a 1-0 lead 6:37 into the first period on Steve Sullian's fourth goal of the season, as he beat Patrick Lalime on a high wrist shot for his 10th point.
The Blues tied the game 1-1 at 5:58 of the second period on Jamal Mayers' third goal. Christian Backman skated down the left wing and put a pass on stick of Mayers, who had slipped behind defenseman Danny Markov, and he wristed in a shot by Vokoun.
The Predators then scored two goals to take a 3-1 lead heading into the third period.
David Legwand scored from the right circle at 12:57, picking up a pass from Paul Karyia on top of the faceoff circle and sending a wrist shot just under the crossbar. With 23 seconds left Scott Hartnell scored on a slap shot from the top of the right circle.
"It was one of those where you tip the hat," Lalime said about Hartnell's goal. "It was a great shot. He just beat me. That's the way it goes."
Blues captain Dallas Drake said St. Louis can't afford to play sloppy.
"All three goals came on turnovers," Drake said. "They took advantage of us. We've got to find a way to not turn the puck over."
Nashville had just six shots on goal in the third period.
"They say the worst lead in hockey is a two-goal lead going into the third period," Vokoun said. "You can't sit back and let them keep coming at you. I thought we did a good job of skating and continuing to play in that third period."
Nashville got an empty-netter from Johnson at 18:33 of the third period.
The Blues, who outshot Nashville 29-24, went 0-for-4 on the power play.
"Our power play struggled," Kitchen said. "It didn't give us any momentum at all."
- Blues LW Keith Tkachuk, back after missing three games with a groin strain sustained in the season opener, was taken off the ice at 14:48 of the second period after getting hit by a stick in the midsection. He did not return until the start of the third period.
- Nashville entered the game with the top power play in the NHL, but were stopped on seven attempts by the Blues. For the season, Nashville is 7-for-28 on the power play.
- The Blues' Barret Jackman skated his 100th career game.