Jeff Baker hit a two-out RBI single to cap a four-run ninth inning for the Marlins, who extended their winning streak to five games by beating the Nationals 7-6.
Miami won after trailing 6-0 with two out in the seventh. Washington's Rafael Soriano (2-1), who earned his 200th career save Sunday, took the mound in the ninth with a 6-3 lead and blew a save for the fourth time this season.
The Marlins were coming off the best seven-game trip in franchise history, a six-victory swing that put them back into the playoff picture. They now trail Washington by six games.
"At this stage, that's got to be the biggest game of the year -- right? -- with where we are in the standings, and where we've got to go," manager Mike Redmond said. "These guys understand that."
The one-run victory was the 25th for Miami, most in the majors.
Casey McGehee led off the ninth with a four-pitch walk, Garrett Jones doubled and Marcell Ozuna hit an RBI single. Jarrod Saltalamacchia's sacrifice fly made it 6-5, and Adeiny Hechavarria ended an 11-pitch at-bat with an RBI triple to tie the game.
Left-hander Jerry Blevins replaced Soriano, and after a strikeout, Baker lined a hit over left fielder Bryce Harper that struck the base of the fence. Baker applauded the group effort in the comeback.
"We're not going to be able to rely on just one or two guys all year, and we know that," Baker said. "Guys collectively are trying to pull their end of the rope. Tonight was a case where everyone contributed."
Baker drove in two runs after entering the game in the eighth inning and extended his hitting streak to 11 games. Soriano's ERA rose from 1.10 to 1.96.
"Bad day for me," Soriano said. "Every pitch that I threw, I had no command. Everything that I tried to throw didn't work."
Jordan Zimmermann allowed two runs in seven innings and was in line for his first victory this month until the bullpen allowed five runs.
"No one's perfect," Zimmermann said. "These guys are going to have bad games. They've been picking me up all year. You're going to have a bad game from time to time."
Miami starter Nathan Eovaldi allowed six runs, five earned, in 5 1/3 innings. He watched from the dugout as the Marlins rallied to take him off the hook for a loss.
"An amazing win," Eovaldi said. "It was awesome -- keeps the streak going."
The Nationals' Jayson Werth twisted his right ankle when his foot came down awkwardly at second base while trying unsuccessfully to stretch a single into a double in the seventh inning. He was replaced in right field in the bottom of the inning by Nate McLouth but said he expected to play Tuesday.
Stephen Strasburg (7-8, 3.67 ERA) is scheduled to start Tuesday for the Nationals against Henderson Alvarez (7-5, 2.62). Strasburg is 1-6 on the road with a 5.09 ERA, and he has a career ERA of 8.61 with a 2-3 record in five starts at Marlins Park.
The Marlins recalled OF Jake Marisnick from Triple-A New Orleans and optioned catcher J.T. Realmuto to Double-A Jacksonville. Marisnick hit .330 with four homers in 20 games this month for the Zephyrs.
MARLIN GOES SPLAT
The Marlins were still laughing Monday about a dugout pratfall in Houston before Sunday's game by right-hander Tom Koehler.
Koehler attempted a dunk move by grabbing the edge of the dugout roof as if it were a basketball rim and pretending to slam down on catcher Jarrod Saltalamacchia. To the amusement of his teammates, Koehler slipped and took an awkward spill but wasn't hurt.
His splat was shown on the Marlins' game telecast.
"That's what happens when you mess with your catcher," Saltalamacchia said. "Things go wrong."
Marlins Rally For Walk-Off Win
Baseball Tonight Spotlight: The Marlins scored seven unanswered runs to defeat the Nationals 7-6.