ST. LOUIS — Casey McGehee didn't have to wait long to get another shot against Cardinals closer Trevor Rosenthal with a game on the line. Just a few hours.
The Miami Marlins cleanup hitter grounded into a game-ending double play in a one-run loss Friday night. He wasn't thinking about instant redemption before getting the key two-out hit in a ninth-inning rally of a 6-5 victory on Saturday.
"A lot of times you don't ever get it," McGehee said. "You've got to be OK with the fact that those guys, they're going to get you some times — more times than not.
"You can't go up there with that in your mind, but when you are able to get a hit like that it definitely feels good."
Rosenthal called it a "tough at-bat against a good hitter, and he won the battle."
McGehee fouled off five full-count pitches before lining a long game-tying single. He took second on the throw home, then beat the relay to the plate on pinch hitter Jeff Baker's go-ahead hit off Sam Freeman.
"I was going, I had to take a chance right there," McGehee said. "I'm not blessed with the greatest speed in the world. I was just trying to get there as quick as I could."
Donovan Solano was running from first on McGehee's hit and just beat a relay that catcher Yadier Molina couldn't quite handle.
The Marlins also scored two runs off Rosenthal in the series opener but fell short in a 3-2 loss. Christian Yelich's three-run homer off Seth Maness in the sixth began Miami's comeback from a four-run deficit that snapped the Cardinals' three-game winning streak.
"You always feel bad letting down the team, but it's part of the game," Rosenthal said. "No one's perfect. So I'll go out there again and try to do my best."
Mike Dunn (6-4) worked a scoreless eighth and Steve Cishek finished for his 19th save in 21 chances.
Allen Craig and Jhonny Peralta homered on consecutive at-bats against Andrew Heaney in a four-run fourth inning that put the Cardinals up 5-1. Rosenthal has four blown saves in 30 chances.
The Cardinals entered with 49 homers, tied with the cross-state Royals for fewest in the majors, and hit back-to-back homers for the first time this season. Craig's two-run shot was his first since May 29 and came after two days on the bench, and two pitches later Peralta hit his team-leading 13th just inside the foul pole in left.
Shelby Miller needed 107 pitches to work 5 1-3 innings and was charged with three runs on nine hits. Miller saved a run that kept it tied at 1 in the fourth, bare-handing Heaney's two-out safety squeeze bunt and diving as he flipped the ball to the plate in time to tag Marcell Ozuna.
Crew chief Tim Welke denied the Marlins' appeals that Ozuna had been safe and that there had been obstruction at the plate.
Heaney gave up five runs on eight hits in 3 2-3 innings, the worst of his four career starts. He faced 23 hitters and 12 reached safely.
The Marlins nicked Miller for a run on three singles in the first with McGehee getting the RBI and extending his hitting streak to 12 games, a career best. The Cardinals tied it on a hit batter, walk and Molina's single in the bottom half.
St. Louis stranded two in the first when Jon Jay took a called third strike and Allen Craig, making his first start in three games, grounded out with the bases loaded to end the second.
After the game the Marlins activated shortstop Adeiny Hechavvia (triceps strain) from the 15-day disabled list after the game and manager Mike Redmond anticipated he'd play in the series finale Sunday. Heaney and outfielder Jake Marisnick were optioned to Triple-A New Orleans and Tom Koehler was activated from paternity leave ahead of Monday's scheduled start at Arizona.
The Marlins had discussed skipping Heaney's next turn and Redmond noted the lefty was at Class A last year.
"We want to make sure he's confident and right," Redmond said. "Your game has got to be tight."