MIAMI -- Ricky Nolasco turned in a strong effort Monday night, but the Marlins' bullpen could not finish what he started.
The Cardinals scored eight runs over the final four innings to beat the Marlins, 8-7, before 27,369 at Marlins Park.
"It was maybe the hardest one to watch," Marlins manager Ozzie Guillen said. "Very disappointing. You're pitching well, and all of a sudden in four innings they score eight runs. That's something you've got to try to sleep on and come back tomorrow, because it's going to try to stick in your head for a while."
Nolasco held the Cardinals to just one unearned run on four hits over 6 2/3 innings, but St. Louis threatened multiple times against Miami's bullpen before putting up four runs in the ninth inning to tie the game against closer Heath Bell.
"I need to mix it up a little bit more," Bell said. "I was just throwing fastballs, basically just throwing [batting practice] to the Cardinals. They were hitting everything I threw and not swinging at everything I didn't throw for a strike. You have to tip your hat to them and also got to slap me in the face, because I [stunk] tonight. I let everybody down."
In the 10th, Rafael Furcal doubled home Tyler Greene to put the Cardinals ahead, and pitcher Joe Kelly -- batting because of a lineup card snafu -- added a pinch-hit single with the bases loaded, and the Marlins fell to 6-2 in extra-inning games on the season.
"We had momentum and I went out there and blew it," Bell said. "Plain and simple, this loss is on me.
"I didn't have my stuff tonight for whatever reason. I've been pitching good, but once in a while this game humbles you, and it definitely has humbled me right now. I'm going to go out there and work hard to try and never have this happen again. I apologize to my teammates because I [stunk] tonight. I let everybody down. Period."
The game took a confusing turn in the bottom of the ninth due to a double-switch. Cardinals manager Mike Matheny intended to have Tyler Greene enter the game and play second base while batting ninth. Victor Marte was supposed to pitch and bat seventh in David Freese's spot, and Daniel Descalso was going to move from second base to third. But home-plate umpire Bob Davidson seemed to have heard Matheny say that he wanted Marte batting fifth.
Guillen argued that Freese should have remained in the game, so the umpires huddled and determined that Allen Craig needed to exit because he was the fifth batter, and that is where Marte belonged in the order. Tony Cruz entered the game to play first base and bat seventh, emptying the Cardinals' bench of position players.
The confusion was a factor in the outcome of the game, as Kelly -- a starting pitcher -- was forced to pinch-hit for Marte in the 10th, and he collected his first Major League hit and RBI on an infield single that drove in what proved to be the deciding run as the Cards went up by two.
Miami trimmed the deficit to one on John Buck's two-out RBI single in the bottom of the 10th, and pinch-runner Brett Hayes moved to second when Justin Ruggiano walked. But St. Louis closer Jason Motte got Jose Reyes to fly out to end the game.
The Marlins' bullpen escaped damage in the seventh when Shane Robinson was struck by a hard grounder off the bat of Matt Holliday. Had the ball gone through, multiple runs could've scored. Instead, St. Louis stranded three runners.
"We pitched very poorly out of the bullpen," Guillen said. "They fought back, and you have to give them some credit because they never quit."
Miami appeared to be headed toward a victory after adding four runs in the bottom of the seventh, but the Cardinals threatened again in the eighth.
"It wasn't looking good for us," Molina said. "They put six runs on the board, and the bullpen they have, they have a pretty good bullpen. The way that we came back, it was outstanding."
Hanley Ramirez committed two errors on a David Freese groundball that allowed St. Louis to score and put runners on first and third with one out in the eighth. But Mike Dunn struck out Daniel Descalso and Matt Carpenter to end another threat by the Cardinals.
Guillen then turned to his closer with a four-run lead in the ninth, but St. Louis finally broke through with a big inning against Bell. Carlos Beltran and Craig each drove in a run, and the rally was capped by a two-out, two-run homer by Molina.
"I know exactly what I did wrong," Bell said. "I'm going to go fix it and not let that happen anymore. These guys played way too good and we've turned it around. You can forget about all this losing, because we're going to win. We're a bunch of winners out here. I just had an off night."
Even after watching Bell blow another late-inning lead -- he's 14-for-18 in save opportunities this season, but struggled mightily early in the season -- the Marlins manager told the right-hander to "be ready tomorrow" in the event of a save situation.
"What else can I say," Guillen said. "He knows. He's a grown man. Does he want to pitch bad? No. He doesn't want to put us in that situation, but it's part of the game and unfortunately it happened today to him."
While the Cardinals' offense scored late in the game, the Marlins scored two runs off Cardinals starter Jake Westbrook by following a formula. Buck got on base, Nolasco sacrificed Buck over and then Reyes drove Buck home. The Marlins shortstop doubled home Buck in the third inning and singled him home two innings later.
"Obviously we played a really good game today, came out with great energy and it just didn't work out," Nolasco said. "It's pretty frustrating, but we just have to come back tomorrow and try to start over."
David Villavicencio is a contributor to MLB.com. This story was not subject to the approval of Major League Baseball or its clubs.