MIAMI -- Jason Heyward came up short, and so did the Atlanta Braves' bid for a comeback win.
Jose Reyes blooped a two-out RBI single in front of a diving Heyward in right field in the 10th inning Tuesday night, and the Miami Marlins overcame an awful ninth inning to snap the Braves' four-game winning streak with a 4-3 victory.
With one out in the 10th, pinch-hitter Rob Brantly was walked by Cory Gearrin (0-1), and Gorkys Hernandez was hit by a pitch. Following a strikeout, Reyes hit a 3-2 pitch, and when Hayward went sprawling, Brantly scored without a play.
"Reyes just happened to put some bat on a ball and bloop one in there," Atlanta manager Fredi Gonzalez said.
The Braves lost to Miami for only the fourth time in 14 meetings despite rallying from a 3-0 deficit in the ninth to tie the game.
"We played them strange, and then we win and it's all fine," Marlins manager Ozzie Guillen said. "Oh boy, what a way to do it."
Heyward doubled to start the ninth against Steve Cishek, and Chipper Jones walked on a 3-2 pitch. With one out, Dan Uggla singled home a run, and Brian McCann followed with a two-run double off Mike Dunn to tie the score.
Dunn struck out Michael Bourn with runners at the corners to end the inning.
"We fought back to tie it up," McCann said. "All you can ask is for everybody to play hard. That's what we did, and it didn't go our way."
The Braves' rally spoiled a career-best outing by Nathan Eovaldi of the Marlins. He allowed no runs and only four hits while pitching eight innings for the first time.
Eovaldi, a 22-year-old rookie, had lost his last four starts and came into the game with the lowest winning percentage of any NL pitcher at 4-12. But he permitted just two runners to reach second base.
"He was throwing 97 (mph), 98 even in the eighth inning, and he was commanding," Gonzalez said. "Nasty."
"A very spectacular game for him," Guillen said.
The Braves were so flummoxed by Eovaldi that slugger Heyward bunted with two outs and none on in the sixth. He reached on a single but was stranded.
Atlanta's Paul Maholm allowed four hits and two runs in 6 2-3 innings.
"Their guy was on his game," Maholm said. "We battled back and did everything we could."
John Buck hit a two-run homer, tripled and scored twice for Miami. Heath Bell (3-5) pitched a perfect 10th.
The Marlins improved to 11-5 in extra-inning games; they're 55-78 otherwise.
The game began with the retractable roof open for the eighth time this season, and the first since June 13. The roof was closed when light rain began to fall in the fifth inning.
Buck hit his first triple of the season in the third inning and scored on a two-out single by Hernandez. Center fielder Bourn misplayed Buck's deep drive, pulling up short of the wall near the 418-foot sign and then leaping in vain for the ball.
"I think he went so far back that he felt like the wall had to be close there, and it kind of threw him off," Gonzalez said.
The Marlins added two runs in the seventh. Austin Kearns doubled with two outs, and Maholm was replaced by Peter Moylan, who gave up Buck's 11th homer.
The Marlins played without slugger Giancarlo Stanton, who missed his second consecutive game with a strained muscle in his side. He's expected to rejoin the starting lineup Friday.
Notes: Braves SS Paul Janish dislocated his left shoulder diving for an infield single in the ninth inning. He said he doesn't expect to be sidelined long. ... McCann was back in the lineup after missing two starts with right hamstring tendinitis. ... RHP Josh Johnson, scheduled to start Wednesday against Atlanta, is 6-4 with a 2.17 ERA in 18 games against the Braves. ... OF-1B Logan Morrison is the Marlins' nominee for the Clemente Award, which recognizes the player who best represents the game through positive contributions on and off the field. ... Brantly, a rookie C who threw out a base stealer for the first time in his career Monday, sheepishly admitted he missed a pickoff sign from the dugout before the pitch. "He's a kid," Guillen said. "He does stuff that makes you laugh."