It was the first game of a split doubleheader after being postponed from Friday. The Giants and Cardinals played a doubleheader in St. Louis for the first time since July 16, 1978.
Miller (6-3) has thrown 12 2-3 scoreless innings in two starts with Cruz catching.
"Cruz did a great job of calling pitches behind the plate," Miller said. "We felt good together. We were clicking today. Tony is good. The thing is, Tony could probably play anywhere and start if he wasn't here. He's an unbelievable catcher."
Miller scattered six hits, stranding seven runners. His ERA dropped to 1.82 as he struck out seven with one walk. He mixed in a change-up, a curveball and some sinkers for the first time this season along with his fastball.
"You have to stay humble about the whole experience," Miller said. "It's not always going to be pretty and (I'm) not always going to pitch this good. I soak it up and try to learn something new every day and hang around the veterans.
"Every time I go out there, it's a learning experience and I learn something new."
Cruz started at catcher instead of Yadier Molina. It was just Cruz's 11th game of the season.
"I thought for the most part, he threw pitches were he wanted to," Cruz said. "He's got incredible stuff. He's just getting better and better."
Cardinals manager Mike Matheny liked seeing Miller use his secondary pitches.
"I actually saw a couple of sinkers," Matheny said. "It was a good job."
Matt Cain (4-3) allowed seven runs in six innings, falling to 0-3 at Busch Stadium with an 8.87 ERA in four starts.
All the damage done to Cain came in the third, when he threw 40 pitches. In the other five innings he pitched, Cain set the Cardinals down in order. He threw 101 pitches, striking out nine with no walks.
The Cardinals had seven runs on nine hits - seven singles and two doubles - in the third when St. Louis sent 12 men to the plate. Cruz smacked a two-run double. Daniel Descalso hit a double and a single while Pete Kozma had two singles in the outburst.
"It's a bonus when you can help out at the plate, but my job is behind the plate," Cruz said. "I try to stay on top of game when I get a chance. I try to keep sharp working in the cage. There's nothing like seeing your name on the lineup card.
"I don't get in there very much but when it's up there, it's kind of exciting."
"He was just like leaving more balls over the plate," Adams said. "We didn't miss any of the pitches."
Cain didn't disagree.
"I made a lot of bad pitches and they took advantage of it," he said.
This was the second time this season St. Louis torched Cain. On April 7 in San Francisco, he gave up a career-worst nine runs in the fourth inning. The Cardinals sent 13 batters to the plate that inning, with eight hits, two walks and a hit batsman in what became a 14-3 St. Louis victory.
Giants manager Bruce Bochy wishes he could explain it.
"Matty was frustrated, too, because he was throwing the ball well," Bochy said. "For that happen to the same team twice, that's hard to do."
Descalso got his second RBI on a sacrifice fly in the eighth.
Cardinals rookie Keith Butler, who was called up Thursday from Triple-A Memphis, made his debut in the ninth. He is the 10th rookie to debut for St. Louis this season. He gave up a hit and a walk and struck out one in a scoreless inning.
Brandon Crawford had three singles for the Giants.
- This was the first time the Giants and Cardinals played a doubleheader since April 9, 1994, when the teams met at Candlestick Park and split.
- St. Louis is undefeated in its last 10 series, going 8-0-2.
- The Giants have lost six of their last nine games and 11 of their last 17.
- San Francisco has lost its last six road games and eight of its last nine.