PHOENIX -- Arizona manager Bob Melvin knew Tony Clark had raked St. Louis pitcher Jorge Sosa over the years.
Going into Sunday, Clark was 6-for-7 with four home runs off Sosa. So imagine Melvin's surprise when the Cardinals allowed Sosa to face Clark, a pinch-hitter, with the game tied in the eighth inning.
"I know that's my match-up there," Melvin said.
Clark drilled Sosa's first pitch into the pool area in right field to help lead the Diamondbacks to a 9-7 victory over the NL Central leaders, who dropped their third straight game.
That left Clark 7-for-8 with five home runs against Sosa.
"Just video-game numbers," Melvin said.
Eric Byrnes belted Sosa's next pitch into the left field seats to provide an insurance run.
Luis Gonzalez tied a career high with four hits, including his 544th career double, which gave him sole possession of 20th place on the all-time list.
Jose Valverde pitched the ninth inning for his 15th save in 18 chances, retiring Albert Pujols, Scott Rolen and Scott Spiezio after putting the potential tying runs on base. It was the first save since May 24 for Valverde, who was demoted to Triple-A Tucson after faltering in midseason.
Pujols had three hits, including his 45th home run. Pujols' homer, a 440-foot shot down the left field line, came off Arizona starter Enrique Gonzalez and put the Cardinals ahead 5-4 in the fifth inning.
It was an ugly loss for the Cardinals, who saw their lead over Cincinnati dwindle to 4½ games with 20 to play. St. Louis committed three errors and blew a 7-4 lead in the seventh inning. And manager Tony LaRussa was ejected by home plate Fieldin Culbreth for arguing balls and strikes in the fourth inning.
"We always go into the game trying to identify the (strike) zone and trying to make the adjustment," said LaRussa, who was ejected for the first time. "If its wide, we go wide. If it is narrow, its narrow. We had trouble identifying the zone, thats what I talked about and I went too far with it and he banged me."
As bad as they played, the Cardinals might have escaped with a split of the four-game series had it not been for Clark. Sosa (3-11) had retired the first two batters in the eighth when Melvin sent Clark up to hit for Luis Vizcaino (4-4).
Gonzalez said "everyone" in the Diamondback dugout knew Clark's numbers against Sosa. The Diamondbacks were hoping the Cardinals wouldn't make a pitching change.
"It's unbelievable when you look at something like that," Gonzalez said. "The pitcher's got to know it too, so you would think that maybe he'd bounce one or something just to give him a different look. But he threw that first one right down the middle and Tony let him know. He jumped all over it."
Asked if he knew why he had hit Sosa so well, Clark shook his head. "And to be honest with you, I'm not planning on trying to figure it out," Clark said.
Through an interpreter, Sosa said he was trying to throw a fastball inside. "I wasn't thinking out there, just trying to make a good pitch, obviously I didn't make a good pitch and he made me pay," Sosa said.
It was Clark's sixth home run and his second pinch homer of the season.
This has been a disappointing year for the 34-year-old Clark, whose production diminished after a superb 2005 season. The switch-hitter batted .304 with 30 homers and 87 RBI in 130 games, and club rewarded him with a two-year contract extension last August.
But Clark has struggled to regain that form this season. First he was pushed out of the line-up by Conor Jackson, and then he missed 36 games with a shoulder injury. Clark came into Sunday hitting .194 with far more strikeouts (38) than hits (25).
Facing Sosa helped Clark regain his clutch form.
"This game works in funny ways sometimes," Clark said.
Arizona SS Stephen Drew stole home as the Cardinals tried to throw Eric Byrnes out at second base. It was first steal of home by a Diamondbacks player since Gonzalez did it Sept. 25, 1999 at San Francisco.