The Diamondbacks were still getting over the hangover of being no-hit the previous night and the Cardinals took advantage in a 6-2 victory.
St. Louis jumped on top early with three runs in the first inning. Aaron Miles tripled to start the game and scored on a groundout by Chris Duncan to make it 1-0. Scott Spiezio later hit the first of his two home runs, a two-run shot that gave starter Jeff Weaver all the support he would need.
The Cardinals added two more runs in the fifth and another in the eighth to round out the scoring.
Luis Gonzalez hit a two-run homer in the third off Weaver, bringing the D-Backs to within 3-2. But Arizona never sniffed home plate again.
Weaver was sufficient on the mound through five innings. He allowed two runs on five hits and struck out three.
Miguel Batista started for Arizona and got the loss tossing six innings, allowing five runs on six hits.