ST. LOUIS -- The Cardinals showed their power on Friday night, belting four home runs, but the back-and-forth contest was decided by a two-out RBI single from Miguel Rojas, which ultimately gave the Marlins a 7-6 win at Busch Stadium in a game in which the lead changed five times.
With the two teams competing for postseason spots, the Marlins now are two ahead of the Cardinals for the second National League Wild Card berth.
Miami is now seven games over .500 for the first time since June 2, 2011, when they were 31-24.
"We're separating ourselves as a team who can play for more than .500, and I think we can go to the playoffs," Rojas said. "If we want to be in the playoffs, we're going to have to win games like this. We have to be ready."
• Marlins get a charge from an unlikely source
Tommy Pham had two homers and four RBIs for the Cardinals, while Stephen Piscotty and Randal Grichuk also went deep. Miami, meanwhile, scratched out 13 hits, and it was Rojas' two-out single off Seunghwan Oh in the ninth that scored Marcell Ozuna, who doubled.
"This one hurts," Cardinals manager Mike Matheny said. "Just one of those days where every decision I went to didn't seem to work."
• Matheny seeks answers after loss to Marlins
Home runs plagued Marlins starter Wei-Yin Chen in the season's first half, as he gave up 17 in as many starts. And in the fourth inning, the long ball twice did damage. Piscotty belted a homer on a 3-1 offering to open the inning, and after two one-out singles, Pham blistered a three-run shot down the left-field line to cap a four-run frame.
"I made two mistakes. One was a fastball down the middle, the other was a slider, which isn't really a bad pitch, but [Pham's] not the hitter you want to throw that slider to," Chen said through his interpreter. "Those two mistakes cost me four runs.
MOMENTS THAT MATTERED
Doubling down: The Cardinals went deep twice in both the fourth and seventh, taking the lead each time, for the 14th and 15th times they homered twice in one inning this season -- already 10 more than last season.
It's also the eighth time this season the Cardinals hit four home runs in a game, but the first time since May 2012 they accomplished the feat in a loss. Pham had a career-high four RBIs with his second multihomer game of the season.
"It's tough, because you always want to contribute and help the team win," Pham said. "When you contribute and you come out on the losing end, it's just a big disappointment overall."
Big hit leads to big run: You can't say that Ichiro Suzuki isn't making his hits count. The 42-year-old delivered a key one-out single in the eighth inning off Kevin Siegrist for No. 2,991 of his brilliant career. It also set up the tying run for Miami. Ichiro advanced to second on Siegrist's wild pickoff throw to first, and he scored on Prado's two-out single off Jonathan Broxton, pulling Miami even at 6. Ichiro is now nine hits from becoming the 30th player in MLB history to reach 3,000. More >
"We don't have to force anything," Marlins manager Don Mattingly said. "We're playing within the context of trying to win games. Ich, he will get his at-bats over the year."
Grichuk's blunder: Grichuk was camped under what looked like a routine fly ball off the bat of Ozuna with one out in the top of the ninth, but the ball began to tail away from him and went over his head for a double; Ozuna later scored the winning run on Rojas' RBI single.
"He's hit a couple balls like that, which we've seen in the past," Matheny said. "Ozuna hits the ball hard and it gets the backspin, and it carried further than what he thought it was going to."
Double after missed DP: The Cardinals created an opening by not turning a double play, and the Marlins capitalized with Chris Johnson's RBI double to left. With the game scoreless, Giancarlo Stanton led off the fourth with a walk, and Ozuna bounced into what should have been a 4-6-3 double play. But the throw from shortstop Aledmys Díaz short-hopped first baseman Matt Holliday, who couldn't make the play. Johnson then slapped his double to left, and Miami got on the board.
"I think our guys understand there are a lot of big games left," Mattingly said. "We can't really afford to give any away, and we've got to be ready to play every day. You love coming out after the break getting a win, but you can't put too much importance on it. It's like the first game of the year. ... But it's really nice for us to get a win like this."
"We fought back and ended up winning that game, that's huge. Big team win. That's what good teams do. Even earlier in the season, when we weren't playing as well as we wanted, we were still fighting in games, that's one of the biggest things we're seeing this year that we hadn't seen in the past, we're playing until the last out." -- Marlins right-hander David Phelps, who allowed homers to Pham and Grichuk in the seventh inning
SOUND SMART WITH YOUR FRIENDS
With his two hits, Stanton has now hit safely in eight straight games, and he's belted five homers and driven in 11 runs over that stretch.
UMPIRE INJURY DELAY
The game was delayed in the bottom of the first inning when a foul ball off Holliday's bat hit home-plate umpire Chad Fairchild in the right arm. Fairchild left the game, and crew chief Jim Joyce took over behind the plate, leaving the rest of the game to be played with three umpires. More >
Marlins: In the middle of three games at Busch Stadium, right-hander Tom Koehler (6-7, 4.50 ERA) on Saturday for the 7:15 p.m. ET contest. Koehler is 4-4 with a 4.73 ERA on the road this season.
Cardinals: Ace Adam Wainwright (8-5, 4.49 ERA) takes the mound in game two of the three-game set against the Marlins. St. Louis has won six of Wainwright's last eight starts at home. First pitch is scheduled for 6:15 p.m. CT.
Watch every out-of-market regular-season game live on MLB.TV.