MIAMI -- With the game on the line in the ninth inning, Adam LaRoche made a decision to bunt that he quickly regretted.
"We just gave a game away we should have won," Braves manager Bobby Cox said.
"I feel responsible," LaRoche said.
Dontrelle Willis won for only the second time in his past eight starts, even though he squandered a two-run lead, departed with the score tied and watched Atlanta threaten in the eighth and ninth innings.
The Braves were foiled in a bid for their first three-game sweep at Miami since 1995. Florida snapped a five-game home losing streak.
Atlanta trailed by a run when Jeff Francoeur doubled for his third hit to start the ninth, and Joe Borowski hit Matt Diaz with a pitch to bring LaRoche to the plate.
"I can't imagine why a guy with 25 homers would be bunting," teammate Chipper Jones said.
Cox shared that sentiment.
"He has been the hottest hitter in the league since the All-Star break," Cox said.
LaRoche's bunt surprised the Braves, but not the Marlins. Catcher Miguel Olivo quickly fielded the ball and threw to third. Miguel Cabrera then relayed to second baseman Dan Uggla covering first to complete the 2-5-4 double play.
"I don't think I've ever seen that," Marlins manager Joe Girardi said.
"If you're going to draw it up, that's about as perfect as it has to be," Borowski said.
LaRoche, batting .321 since the All-Star break, has one sacrifice this season. So what was he thinking?
"I wanted to take the double play or fly ball out of it," he said. "I knew I could get the bunt down, but I didn't do it."
Following the double play, Borowski intentionally walked Brian McCann, then retired Ryan Langerhans for his 27th save in 30 chances.
"I bet you there were some people who were nervous when it was first and second with none out," Willis said. "But we got out of it."
The Braves also came up short in the eighth, when Taylor Tankersley retired Chipper Jones and Andruw Jones with a runner on second.
Willis (8-10) won for the first time in four starts this season against the Braves, allowing four hits and three runs, two earned. He gave up a tying two-run homer in the sixth to notorious bad-ball hitter Francoeur, who golfed a changeup at ankle level over the scoreboard.
"Sometimes you have to tip your hat," Willis said. "He's doing a good job. But we won."
Jeremy Hermida led off the Marlins' seventh with a walk against reliever Tyler Yates (1-4), then scored on Helms' one-out triple.
Helms became the first major leaguer with three pinch-hit triples in a season since Houston's Casey Candaele in 1990. Helms improved his pinch-hitting average to .353 (12-for-34) with nine RBI.
"I like those pressure situations," he said.
Josh Willingham hit his 18th homer for the Marlins. Since the All-Star break, they're 10-1 in the final game of a series.
Atlanta's Lance Cormier, who had lost his three previous starts this season, limited Florida to three runs in six innings. That lowered his ERA in nine career starts to 8.42.
Willis retired 11 in a row before Andruw Jones walked with two out in the sixth. Francoeur followed with his 23rd homer to tie it at 3.
The Marlins took a 2-1 lead in the fourth on a double by Cabrera and bloop singles by Willingham and Olivo. Florida's Hanley Ramirez doubled with two out in the fifth and scored on a single by Uggla.
Braves 2B Marcus Giles was held out of the starting lineup for the third consecutive day with a bruised left hand. He pinch hit in the seventh and bounced into a double play. ... Attendance was a palindromic 16,461. ... Willis prevented an error in the seventh, reaching behind him as he crossed first base to make a barehanded grab of 1B Mike Jacobs' wide toss for a 3-1 putout. ... Helms' four triples this season are a career high.