Then Johnson got a fat changeup over the plate that changed the game.
The leadoff man broke a seventh-inning tie with his second grand slam of the season and the Arizona Diamondbacks' bullpen barely hung on for a 7-6 victory Friday night.
"Definitely to me, that was the one pitch that he threw that was really hittable all night," Johnson said.
The left-handed hitting Johnson had been expecting to see lefty Raul Valdes, who had been warming up.
"It kind of felt like one of those situations where generally a move is made," Johnson said. "But he'd been getting me out and I didn't have great swings. Basically, I just didn't miss the one I got and that's good for us."
Cardinals manager Tony La Russa said he decided against pulling Lohse because of the earlier success along with concern the Diamondbacks would counter with a right-handed pinch-hitter.
"I thought (Lohse) had the weapons to get Johnson," La Russa said. "Like I said, didn't work, bad decision."
Chris Young added a two-run triple and David Hernandez earned his fifth save in as many attempts as the stand-in closer for the Diamondbacks, who have won five of seven and were two games behind NL West-leading San Francisco.
Ian Kennedy (9-3) allowed three runs in six innings, matching his career-best victory total from last season.
Lance Berkman hit his NL-leading 24th homer and Matt Holliday added his fourth in four games to spark the Cardinals' three-run eighth against three relievers. Hernandez worked around a leadoff walk to Albert Pujols and a one-out fielding error by shortstop Stephen Drew and is 7 for 9 in save chances overall.
Johnson has 16 homers, most before the All-Star break in franchise history by a second baseman. Four straight batters reached safely against Lohse (8-6) with one out in the seventh and Johnson deposited a 2-2 pitch just beyond the wall in right field and into the Cardinals' bullpen for his fourth career grand slam and first since May 21 against the Twins.
He hadn't been anticipating huge success.
"No, heck no, no," Johnson said. "He didn't by any means go up there and miss and miss and miss and give up hits after hits after hits. I was just a situation where we got some guys on and it was a big inning for us."
Berkman has 351 career homers, breaking a tie with Chili Davis for fourth-best on the career list for switch-hitters and trailing only Mickey Mantle, Eddie Murray and Chipper Jones. He also singled and walked and is 8 for 20 with five homers and 11 RBIs in four games this season against the Diamondbacks.
Berkman matched his best pre-break homer total since 2006 with one out in the second. The Cardinals had Kennedy on the ropes in the third with a sacrifice fly by Pujols and an RBI double by Holliday and had the bases loaded with one out before Colby Rasmus grounded into a force play at the plate and Gerald Laird grounded out.
Lohse was charged with seven runs in 6 2/3 innings, one of only two outings past six innings in his last eight starts, and threw a season-high 120 pitches. After losing for the fourth time in five decisions, Lohse said fatigue was not a factor.
"I like to be out there, I like to work as long as I can," Lohse said. "The pitch before that was pretty good. I just didn't make a good pitch when I needed to."
Lohse retired the first 10 in order before running into trouble. Holliday just missed a running catch on Young's two-run triple to the gap in left-center in the fourth, and Miguel Montero followed with an RBI single to tie it.
Kennedy and reliever Aaron Heilman both had to deflect liners up the middle, each ending with an unattended assist. Kennedy finished strong, retiring 11 of the last 12.
Drew made an outstanding play in the fourth, diving up the middle to snare David Freese's grounder and then flipping just in time for an inning-ending forceout. ... Berkman's best homer total before the break is 29 in 2002. He has 18 career homers against the Diamondbacks. ... Kennedy struck out three after totaling 37 strikeouts in 35 2/3 innings the previous five starts.