Kyle Lohse won his 15th game and the Cardinals clobbered the 45-year-old left-hander for the second time this month in a 7-4 victory Tuesday night. Johnson and the Diamondbacks trailed by four runs after the first inning.
"It was one bad inning," Johnson said. "I shut them down the rest of the night, essentially. I don't know what more I can say."
Ryan Ludwick hit a three-run homer in the first and Albert Pujols had two hits, two RBI and reached 100 walks for the first time in his career for the Cardinals, who won for the third time in 13 games.
The 2006 World Series champions were eliminated from postseason contention for the second straight season in the top of the seventh when New York beat Chicago. They are, however, guaranteed a .500 finish that lets manager Tony La Russa off the hook from his pre-game jest that he would "walk from here to California" if they ended with a losing record.
"If you'd have told this club we were going into the last week of the season in contention for an October spot, I think a lot of people wouldn't have believed it," La Russa said. "And a lot of people in our clubhouse would have felt good we were that competitive."
St. Louis bunched five of its seven hits off Johnson (10-10) in the first and then hung on after Lohse (15-6) allowed a two-run homer to Chris Young in the fourth and a solo shot to Miguel Montero in the sixth.
Conor Jackson added three hits for the Diamondbacks, who never got closer than a two-run deficit while losing for the second time in nine games. Arizona entered the night two games behind first-place Los Angeles in the NL West and has five games to play.
"I'm sure they're happy in Dodger Stadium, and that's not our thinking," La Russa said. "We're just playing to compete against whoever it is."
Johnson is just six victories short of the 300 club, but is 6-7 with a 4.12 ERA for his career against the Cardinals in 15 starts. He is 0-2 in his last seven appearances overall this season, a stretch that includes a Sept. 1 start against St. Louis in Arizona in which he allowed five runs in 3 2/3 innings.
Johnson lasted six innings, giving up five runs and seven hits and had only one strikeout to match his season low.
"I haven't been this frustrated since 2004," Johnson said. "Without a doubt it's been frustrating since the All-Star break for me."
Lohse escaped a bases-loaded jam in the first en route to setting a career best for victories, topping his previous high of 14 with Minnesota in 2003. He allowed three runs in six innings and has won his last two starts after going 0-3 with four no-decisions in a span of seven outings.
"Everybody in here wants to finish strong," Lohse said. "After the last month we've had we don't want to leave doubts in anybody's minds that we're just going through the motions."
Diamondbacks manager Bob Melvin said the first inning was crucial.
"Our at-bats weren't bad as the game went along," Melvin said. "But that was the biggest opportunity that we had and probably would have had the most effect on the game."
Pujols is batting .350, second in the National League, after going 2-for-3, and he is 9-for-20 against Johnson with three homers and 10 RBI. He is the only player in major league history with 30 homers and 100 RBI in the first eight seasons, and topped his previous season best of 99 walks last year on an intentional pass from Johnson with two outs and a runner on second in the fifth.
Felipe Lopez added his second straight three-hit game for the Cardinals, drove in a run and scored twice.
Ryan Franklin got the last four outs for his 16th save in 23 chances.
- Pujols entered the game in a 2-for-19 slump.
- Lopez is batting .476 (10-for-21) against the Diamondbacks and is hitting .366 since signing with the Cardinals on Aug. 6 after being released by Washington.
- Arizona 2B David Eckstein, the Cardinals' 2006 World Series MVP making his first appearances in St. Louis as a visiting player, drew another hearty cheer from a crowd of 40,013 before his first at-bat.
- The last Cardinal to get 100 walks was Jim Edmonds, who drew 101 in 2004.
- Four of Montero's five homers have come on the road.