MIAMI -- The St. Louis Cardinals got just enough from their 18 hits to hang on.
Troy Glaus went 4-for-4 and Jason LaRue hit a go-ahead double in the seventh inning, leading Braden Looper and the Cardinals over the Florida Marlins 6-4 Wednesday.
LaRue hit a two-out, two-run double with the bases loaded to break a tie at 2. Glaus tried to score from first base on the play but was thrown out at the plate.
"You have to make the most of every at-bat and every opportunity," LaRue said. "I'm a guy who in the past has played a lot, but I accept this role and don't put any added pressure on myself. You just have to go out there with confidence."
Looper (11-9) gave up one earned run and five hits in seven innings. He walked one and struck out five.
"That's a dangerous lineup over there and they can really make you pay," Looper said. "You have to stay focused and minimize the bad pitches and I was able to do that."
The Marlins scored twice in the eighth to pull within 5-4. Reliever Chris Perez got Josh Willingham to ground into an inning-ending double play with the bases loaded.
"I want to be the guy up in that situation every time, I just haven't been getting too many hits in that situation lately," said Willingham, batting .219 with runners in scoring position.
Glaus hit an RBI double in the ninth and Perez closed for his third save.
It was 2-all in the St. Louis seventh when Skip Schumaker and Albert Pujols singled off Renyel Pinto (2-4). Reliever Justin Miller fell behind in the count 2-0 on Glaus and issued an intentional walk. LaRue, a backup catcher to Yadier Molina, followed with his double.
Florida starter Ricky Nolasco allowed two runs and 10 hits in six innings.
"He gave up a lot of hits but he never gave up the big inning," Marlins manager Fredi Gonzalez said.
Schumaker had an RBI single in the eighth. Jorge Cantu hit an RBI single and Mike Jacobs doubled home a run in the bottom half.
Earlier in the Florida eighth, the Marlins had runners at first and third with no outs. Luis Gonzalez hit a long fly and left fielder Joe Mather jumped to make a catch against the scoreboard.
"That was huge," Cardinals manager Tony La Russa said. "Gonzalez gets that off the wall and we're in trouble. If he doesn't make that catch the whole inning changes and we're looking at the possibility of a big inning."
Gonzalez had a different take.
"That's the way my night went," said Gonzalez, who went 0-for-5 batting in the No. 2 spot.
Looper's infield hit in the sixth set up Adam Kennedy's second sacrifice fly of the game, tying it at 2.
Florida went ahead 2-1 in the fifth when Hanley Ramirez's bloop single with the bases loaded scored John Baker. Looper escaped further damage by getting Gonzalez to ground into a double play.
The Marlins scored an unearned run in the first after Glaus' error at third base.
It was Glaus' second four-hit game of the year and ninth of his career. ... Florida will seek a series split in the four-game finale on Thursday night. The Marlins haven't won consecutive games since July 30-31. ... It was the 11th time the Cardinals had at least 18 hits and scored six or fewer runs. The previous time was Aug. 30, 1990, at Atlanta when St. Louis scored five runs on 19 hits. ... Florida threw out multiple runners on the basepaths for the fourth time this season.