ST. LOUIS -- The Miami Marlins have to be happy they've seen the last of Kyle Lohse.
The right-hander isn't the hardest thrower in the St. Louis Cardinals' rotation, but he gets the job done by staying ahead of the hitters and keeping the ball down with good movement.
He's had the Marlins' number this season.
Lohse worked seven innings of three-hit ball in a 3-2 victory Saturday to beat Miami for the third time this season.
"As far as a pitch-maker goes, I think he's as good as anybody right now," Cardinals manager Mike Matheny said. "It's just not trying to overwhelm people with stuff as much as making pitches.
"It looked like he was commanding the ball well enough to get them to do what he wanted them to do."
Tony Cruz hit a go-ahead two-run triple in the fourth for the Cardinals, who have won five of seven and snapped the Marlins' three-game winning streak. Allen Craig had three hits, and Skip Schumaker added an RBI single in the fourth for the Cardinals, who have won five of seven.
The 106-degree heat didn't seem to bother Lohse.
"I just tried to do my best to block it out," Lohse said. "The only thing you can do is keep the team off the field by throwing strikes, getting ahead of guys and trying to limit the damage."
Marlins starter Carlos Zambrano didn't mind it, either.
"Yeah it was hot," Zambrano said. "I come from Venezuela, so it doesn't bother me."
David Freese was hit by a pitch twice, walked and singled to reach base safely in all four trips.
Justin Ruggiano hit a two-run home run for the Marlins, who missed a chance to climb back to .500. Zambrano (4-7) needed 102 pitches to get through five innings, and Giancarlo Stanton lasted just two innings before leaving with right knee soreness. It's the injury that forced him to miss four straight starts.
Stanton, the Marlins' lone representative in the All-Star game, will undergo arthroscopic surgery today in Miami that Marlins manager Ozzie Guillen said could sideline him a month.
"He's a big bat," Guillen said. "This is our power hitter, the RBI guy. I think everybody out there has got to step it up a notch and try to cover the space.
"We feel bad for the kid, but we can't feel sorry for ourselves."
Jose Reyes, Hanley Ramirez and Carlos Lee, the top three in the Miami lineup, were a combined 0 for 11 with a walk and are 1 for 22 with two walks through the first two games of a three-game set.
Lohse (9-2) is 3-0 with a 2.08 ERA in three starts against Miami. He's allowed nine hits over 21 2/3 innings.
Lohse found his stride after Ruggiano's homer with one out in the third. The Marlins had two baserunners over the last five innings -- on a walk and a fielding error by Craig at first that was wiped clean when Reyes was caught flat-footed to get picked off to end the fifth.
Lohse has won his past three starts and has worked seven or more innings six straight times. He threw first-pitch strikes to 19 of 26 hitters.
"I think I've really figured out what it takes to be successful, and that's going out and locating, not trying to overpower anybody, using my defense," Lohse said. "You look at how I'm getting ahead of guys and then pitching off that, that's kind of been the key to my first half."
Jason Motte allowed a pair of two-out singles in the ninth before getting Donovan Solano to foul out to end it for his 20th save.
Stanton singled to start the second, and Ruggiano hit his sixth homer, a drive to left-center to put the Marlins ahead, with one out. Ruggiano has 18 hits during a 10-game hitting streak.
The Cardinals stranded four runners through the first three innings before getting to Zambrano in the fourth when the first four batters reached safely. Schumaker hit an RBI single and scored when Cruz followed with an opposite-field drive into the right-field corner that scooted past Ruggiano's attempt to cut off the ball.
Cruz has started the past two games in place of All-Star Yadier Molina, who returned to Puerto Rico on bereavement leave following the death of his wife's grandfather.
Zambrano, who was traded to the Marlins from the Cubs during the offseason, lost for the first time at seven-year-old Busch Stadium after entering 6-0 with a 1.73 ERA, the lowest among active pitchers at the ballpark, in seven starts. He lost for the second time in nine career decisions overall in St. Louis.
"I know I've pitched good," Zambrano said. "I didn't know it was the first loss. There's always a first time, and unfortunately it was today."
Marlins reliever Wade LeBlanc struck out the Cardinals' Nos. 3-4-5 hitters in the seventh and allowed one hit over three scoreless innings.
* Zambrano has hit eight batters, which ranks among the league leaders.
* Matt Holliday has hit in 10 straight games after singling in the fifth.
* Lohse has allowed a homer in each of his past four starts.
* Carlos Beltran didn't get the ball out of the infield in three at-bats against Zambrano and is 4 for 27 overall against the right-hander.
* The Cardinals are 11-28 when their opponent scores first.
Connect with the Southeast Missourian Newsroom:
For corrections to this story or other insights for the editor, click here. To submit a letter to the editor, click here. To learn about the Southeast Missourian’s AI Policy, click here.