The Cardinals scored a run in five of the first six innings, but they did not score more than two in any of them.
Trevor Cahill (3-6) was the loser for the D-backs, as the right-hander failed to control his sinker to the tune of three walks and no strikeouts in just five innings.
"I was just falling behind," Cahill said. "I walked I don't know how many guys, but too many. I was behind in the count the whole game, and the couple of times I was ahead, I wasn't able to put them away. If I'm working behind in the count, they're too good of a team to have a good game when you're 1-0, 2-0 all the time."
The Cardinals scored one run in the first and Cahill pitched out of a jam in the second before allowing two in the third, one in the fourth and one in the fifth.
Cahill knew he needed to adjust something, but exactly what that was eluded him during the game.
"It just seemed like I was up in the first inning and then I tried to lower my sights and I was down," Cahill said. "We had a good plan, I just wasn't able to execute it all."
Many times when a pitcher struggles like that, catcher Miguel Montero will call for some offspeed pitches in an effort to help the pitcher find his release point, but that didn't do the trick Monday.
"It was just everything I threw," Cahill said. "There wasn't one pitch I felt confident in throwing where we wanted it at any point tonight. I think [Montero] did a good job calling [pitches] to get me out of there and through five with that much damage. It was just a bad game."
A few of the hits Cahill allowed were hard-hit -- Carlos Beltran's homer in the sixth and Yadier Molina's homer in the fifth to name two -- but others were hit just hard enough to get through the infield and soft enough that when the outfielders came up throwing, the runners were able to score.
That happened in the third on Molina's grounder through the hole at third, and in the fourth on Beltran's grounder to right.
"Soft enough to be a split second safe at home," Montero said. "If they hit the ball a little bit harder, I'm pretty sure we would have had at least one of those two guys at home. It's pretty much a bad feeling, because I thought he was throwing probably not as good, but good enough to give us the opportunity to win a ballgame."
Speaking of Molina, the catcher was suspended earlier in the day by Major League Baseball for one game for making contact with umpire Mike Everitt during Sunday's game. However, Molina appealed the suspension and will be allowed to play until his appeal is heard and ruled on.
Meanwhile, Lance Lynn (8-1) had his way with the Arizona hitters. The right-hander scattered five hits and walked one, while fanning six over seven innings.
"It was a good night," Lynn said. "We had a good plan and I was able to make some pitches. Yadi and I, we were working along together really well so it was good."
The D-backs got on the board in the sixth when Gerardo Parra led off the inning with a double, moved to third on a flyout and then scored on Paul Goldschmidt's groundout to first.
"He's got good stuff," D-backs manager Kirk Gibson said of Lynn. "He was commanding his glove side very well, worked the outside corner very well, and he had total command of all of his pitches and he was very deceptive. He's pitched well for them this year and he pitched a good game against us tonight. To beat guys like that ... you've just got to play a much tighter game. We were just unable to match them tonight."