With two out in the eighth, Dave Concepcion hit a ground single to left and Ron Oester followed with a single. But Cox retired the next four batters to get his shutout, improve his impressive start to 6-1 and pitch his third complete game.
The Cardinals have won five of their last six, including back-to-back shutouts.
They won again behind the surprisingly best RBI one-two punch in the league. Jack Clark hit his 10th home run of the season to drive in two of the runs and the league's leading hitter, Tommy Herr, drove in the other three. Both of them have driven in 39 runs and are the league leaders. Herr is only 10 RBIs from his career high.
Until this season, Cox had two claims to fame. First, he is one of the few major league players born in England and, last season, while posting a 9-11 record and an earned-run average of 4.03, he led the league in hitting batters with seven.
Cox is no surprise to Cardinal Manager Whitey Herzog. When Cox made his debut with the Cardinals late in the 1983 season, Herzog predicted a bright future for the young right-hander born in Northampton, England.
"He pitched some kind of game, didn't he?," said Herzog. "(Catcher) Darrell (Porter) said Concepcion might have been waiting for the pitch. Danny had real good control of everything. But, then, he's pitched well for us all season."
Cox said that even if he had not been aware he was pitching a perfect game, the roar of the crowd would have been a giveaway.
"Everybody was clapping and yelling," Cox said. "I knew it wasn't for my hitting. You're aware of it but you don't want it to be the biggest thing on your mind. I was just concentrating on each batter.
"He hit a fastball. I tried to get it inside, but I left it out over the plate. I give him credit. He's a veteran ballplayer. I tip my cap to him."
Cox threw only 96 pitches and drew praise from Pete Rose, the Reds' player-manager.
"Danny Cox is a real fine young pitcher," Rose said. "When you pitch a perfect game for 7 innings, you have to be doing something right. He pitched a good game. He changes speeds well, and he throws lots of strikes. That's his second solid game against us in less than a week."
Rose grounded out three times and flied to left for the game's final out against Cox, who has a 2.56 ERA to go with his 6-1 record.
Until Concepcion singled, the Reds had hit only four balls out of the infield.
"With two out in the eighth inning, you got to get a hit," Concepcion said. "What else could I do? I wanted to hit the ball hard and I did. He was pitching me up and in, but he got that one down a little. I could have hit it hard at somebody."
The Cardinals' speedy rookie Vince Coleman stole three bases to break the club stolen base record for a first-year player. In 38 games, he has 31 stolen bases.
San Diego 4, New York 3--Carmelo Martinez, who had hit three home runs in the last two games, beat the Mets in this game at San Diego with a perfect two-out squeeze bunt.
Martinez came up with Steve Garvey on third and two out in the eighth in a 3-3 tie. After taking two strikes, Martinez laid the bunt down the third base line and beat it out.
In the sixth inning, Martinez hammered a home run to give the Padres a 3-2 lead. The Mets tied it in the top of the eighth when Mookie Wilson hit his first home run of the season.
With Rich Gossage nursing a sore shoulder, the Padres let LaMarr Hoyt go the distance to win his fifth.
Chicago 6, Houston 2--Keith Moreland hit a three-run home run to highlight a four-run 10th inning at Houston that enabled the Cubs to move within one game of the Mets in the East.
Scott Sanderson held the Astros to one hit until the sixth when Craig Reynolds singled to trigger a rally that gave the Astros a 2-1 lead. Sanderson scored the tying run in the seventh after Joe Niekro hit him with a pitch.
Although he gave up only four hits in eight innings, Sanderson didn't win. Lee Smith (3-0) gave up a hit in two innings to gain the win.
Atlanta 8, Pittsburgh 2--Rafael Ramirez singled home two runs to cap a four-run fourth inning at Atlanta.
Pascual Perez missed another chance to win his first of the season for the Braves. Although he gave up only two hits in three innings, Perez (0-5), walked five and the Braves batted for him in the fourth inning.
Rick Camp gave up only one hit in five innings to gain his first victory.
Dale Murphy continued his hitting surge, getting three hits and driving in a run for the Braves.
San Francisco 4, Philadelphia 3--Ricky Adams made an auspicious National League debut, hitting a three-run home run with two out in the seventh to beat the Phillies.
Adams, brought up from Phoenix Thursday, started at third base and was 0-for-2 when he faced Charlie Hudson with two on and two out in the seventh.
Mike Krukow, who struck out seven in eight innings, was the winner.