Buehrle (9-8) allowed one run in seven innings as the Marlins beat the Nationals 2-1 Saturday night, ending a three-game losing streak.
"It was a must-win game against the team we are chasing," Marlins manager Ozzie Guillen said.
After beating the Nationals and Gonzalez (12-4), the Marlins are nine games out of first place -- with Atlanta and New York in between.
"Going up against this team and Gio with the way he's been throwing the ball all year, you've got to be on top of your game," Buehrle said.
Buehrle won his fourth consecutive start by allowing six hits, striking out seven and walking two.
"I'm still scratching my own head to try to figure out what I'm doing striking all these guys out because it's a lot of guys," Buehrle said. "I try to shoot for 100 every year just to get to triple digits, but it seems like I'm getting there faster than I usually do."
Carlos Lee and John Buck drove in the runs for Miami and Steve Cishek pitched the final 1 2/3 innings to earn his second save, and first since May 25 against San Francisco. It was the first save opportunity for the Marlins after Guillen announced Heath Bell had been removed from the closer role.
"I got ahead with two strikes and I left him a pitch in the middle that he fouled off," Cishek said. "I didn't want to make that mistake again. It would have been crucial. I really tried to get that slider out there and he chased it."
Gonzalez, a Hialeah native, took the loss in his first game in Miami. Gonzalez pitched six innings and allowed two runs. He struck out nine.
"It was great being in front of family and friends," Gonzalez said. "My parents were right behind home plate. The excitement was one of those things you dream about."
"He pitched a jewel in his hometown," Nationals manager Davey Johnson said.
Gonzalez retired the first nine batters -- five on strikeouts -- before Jose Reyes singled up the middle to lead off the fourth. Omar Infante's sacrifice bunt advanced Reyes to second and the recently acquired Lee drove in Reyes with a base hit to right-center field. It was Lee's first RBI as a Marlin in six games.
"Old fashioned National League ball -- they bunt the guy over and then their guys delivered a hit," Johnson said. "That's what wins ballgames."
The Nationals tied it at 1 thanks to some fortune on the basepaths. Buehrle got Ian Desmond leaning off first base and when his pickoff throw went to Lee, Desmond was on his way down to second. Lee's throw hit Desmond in the back and he reached safely.
Two batters later Flores hit a bloop single to score Desmond. Ryan Zimmerman eventually came to bat with the bases loaded, but Buehrle struck him out swinging to get out of the jam.
Buck's RBI single in the fifth gave the Marlins a 2-1 lead.
Buehrle got out of another jam in the seventh as he struck out Danny Espinosa to leave a runner stranded at third.
Flores went 2 for 3 after hitting a two-run single on Friday. He had been hitless in his final 16 at-bats before the All-Star break. ... Emilio Bonifacio stole second base with a head-first slide in the seventh inning, his first steal attempt since being caught stealing on May 18 when he damaged a ligament on a similar slide causing him to miss 46 games. ... Prior to the game, former Marlins Ivan Rodriguez and Jeff Conine re-enacted Conine's memorable throw to Rodriguez at home plate for the final out of the 2003 NL Division Series against the Giants. The Marlins went on to win their second World Series that year. ... Washington RHP Stephen Strasburg (9-4, 2.82 ERA) will start Sunday against RHP Ricky Nolasco (8-6, 4.35 ERA). Strasburg will try to snap a three-game losing streak.