Wainwright (7-2) was on top of his game from the first pitch as he allowed just one hit -- his first career one-hitter -- and struck out nine in recording the eighth shutout of his career.
"We felt like we were rolling and then you catch a pitcher who is hot like that, it's frustrating," outfielder A.J. Pollock said. "You really wanted to keep it going. But we had that happen last series, too, where [Zack] Greinke came out and dealt against us, and then in the next two games we got things going. We won't forget that."
Wainwright was perfect through 3 2/3 innings before Paul Goldschmidt doubled off the wall in center. That would wind up being the only runner to reach base against the right-hander.
"He got ahead and threw a curveball that I'm sure was supposed to be down, but fortunately it stayed up and I was able to hit it hard," Goldschmidt said. "Better one hit than none, but obviously we would have liked to have scored some runs. He just did a good job, but we've got to do a better job going forward."
Wainwright was briefly taken out of his rhythm prior to the start of the fourth inning when the game was delayed as home-plate umpire Brian O'Nora became ill and left the game. Second-base umpire Marvin Hudson retreated to the umpire's locker room to put on the home-plate gear to take over for O'Nora.
"I've had some times in my career where I felt like I had the stuff to do it," Wainwright said of a possible no-hitter. "Today, I had the stuff to do it. I was locating well. But Goldschmidt is a very good hitter. I don't ever second guess a pitch to Goldy out there. I threw a curveball, middle of the plate, to him and he hit it off the wall. He's a very strong guy and great hitter."
While Wainwright cruised, things were not as smooth for D-backs starter Bronson Arroyo (4-3).
Arroyo, who was coming off his best outing of the year, struggled to get the final out of innings and it cost him. All five of the runs he allowed came with two outs.
"You want to close those innings out when you can do that like I did there in the seventh," Arroyo said. "I let them keep putting one more on the board and one more on the board, especially the way Wainwright was looking, it was just too much to overcome."
The Cardinals jumped on Arroyo in the first inning when Matt Holliday singled with two outs and Matt Adams followed with a home run to center to put St. Louis up 2-0.
In the fourth, Jhonny Peralta's two-out double scored Yadier Molina for a 3-0 Cardinals lead.
Holliday's two-out RBI single in the fifth and Peralta's two-out homer in the sixth put the Cardinals up 5-0 and that was more than enough support for Wainwright.
"Holliday has given me trouble over the years," Arroyo said. "I wasn't worried about the home run in the first, but the two Peralta hits were huge. That's a righty on righty matchup, he hasn't been in this lineup, he hasn't seen me as much as the other guys over the last six or seven years, so I really needed to put him away. Just a bad fastball in the one count and then he hit a breaking ball that I didn't think he could lift out of the park, and he did."
It hardly seemed to matter, though, because of the way that Wainwright was dealing.
"I felt it right away that he had some special stuff tonight," Pollock said. "He had that curveball and cutter, and he would sink it back onto the plate. We wish we could have done a better job but at the same time, I can't remember a pitch that I felt like I could do damage with."