Strasburg (10-4) allowed six hits and struck out seven.
Steve Lombardozzi, Michael Morse, and Danny Espinosa also drove in a run for the Nationals.
The Marlins were 1 for 13 with runners in scoring position as they were shut out for the ninth time this season.
Nationals reliever Tyler Clippard loaded the bases in the ninth with no outs, but retired the next three batters. Omar Infante flew out to Bryce Harper in foul territory to end the game as Harper collided with second baseman Lombardozzi.
Marlins starter Ricky Nolasco (8-7) did not allow a hit until the fifth inning when Morse led off with a single to left. Strasburg and Lombardozzi followed with two-out RBI singles.
REDS 4, CARDINALS 2
CINCINNATI (AP) — Scott Rolen hit a tie-breaking two-run single in the eighth inning, sending Cincinnati to a victory and three-game sweep of St. Louis.
The Reds' sixth straight win matched their best surge of the season, moved them a season-high 12 games over .500, and jumped them a game ahead of Pittsburgh for the NL Central lead. St. Louis fell 4 1/2 games back.
Rolen's two-out single off Mitchell Boggs snapped a 2-all tie and provided a satisfying moment for the 37-year-old third baseman, limited by a bad shoulder and back. Jake Westbrook (7-8) set up the rally with a walk, a wild pitch and a hit batter.
Homer Bailey (8-6) went eight innings during a fill-in start for Johnny Cueto, sidelined by a blister.
BRAVES 6, METS 1
ATLANTA (AP) — Ben Sheets pitched six scoreless innings in his first game in two years and Atlanta beat New York for its season-high seventh straight victory.
Freddie Freeman hit a three-run homer in a six-run fifth inning and Sheets (1-0) allowed two hits and one walk with five strikeouts in his first start since July 19, 2010.
The Mets have lost four straight and seven of 10. Atlanta improved to a season-high 10 games over .500.
Johan Santana (6-6) gave up eight hits, six runs, two walks and struck out three in five innings.
BREWERS 4, PIRATES 1
MILWAUKEE (AP) — Yovani Gallardo struck out a career-high 14 in seven innings and Milwaukee used a four-run sixth to beat Pittsburgh.
Gallardo (8-6) gave up four hits, including Andrew McCutchen's homer in the fourth.
A.J. Burnett's nine-game winning streak ended.
McCutchen, who had three of the Pirates' five hits, hit his 21st homer and fifth in the past four games. John Axford of Simcoe, Ont., pitched the ninth for his 16th save.
Burnett (10-3) had his career-high nine-game winning streak ended.
CUBS 3, DIAMONDBACKS 1
CHICAGO (AP) — Darwin Barney homered and Matt Garza threw seven shutout innings to lift Chicago to a three-game sweep of Arizona.
Barney sent a Trevor Cahill pitch into the left-field bleachers for a two-run homer in the second inning to help Chicago match a season high with its fourth straight win.
Garza (5-7) held Arizona to five hits and one walk, striking out seven en route to his first win in July.
Carlos Marmol got the last two outs for his 10th save. He allowed a pair of base runners, but struck out Geoff Blum and got Gerardo Parra on a comebacker to end it.
Cahill (7-8) allowed three runs and four hits over 5 1-3 innings, losing for the third time in his past four decisions.
Aaron Hill hit his 12th homer in the eighth for Arizona.
PHILLIES 5, ROCKIES 1
DENVER (AP) — Cole Hamels pitched eight innings of one-run ball, Hunter Pence hit a three-run homer and Philadelphia beat Colorado for its first series victory in nearly a month.
Hamels (11-4), making his 100th career road start, allowed six hits and had seven strikeouts in his first win in three career outings at Coors Field.
Antonio Bastardo finished up with a 1-2-3 ninth.
Drew Pomeranz (1-4) went five innings and allowed five runs on five hits in taking the loss. He struck out five and walked two.
GIANTS 3, ASTROS 2
SAN FRANCISCO (AP) — Buster Posey had three hits and two RBIs to back Matt Cain, and San Francisco finished a three-game series sweep.
Cain (10-3) gave up two runs, one earned, and five hits in 6 1-3 innings in his first start against Houston since he threw a perfect game against the Astros on June 13.
The Giants won despite being without their best hitter. Melky Cabrera took a temporary leave to attend the birth of his child in Florida.
Santiago Casilla retired two batters for his 23rd save.
Marwin Gonzalez had two hits and scored Houston's only run. The Astros fell to 1-10 in July.
Houston's Bud Norris (5-7) walked six in six innings and allowed three runs and five hits.
PADRES 7, DODGERS 2
LOS ANGELES (AP) — Chase Headley homered for the second straight game, and San Diego scored six unearned runs.
Cameron Maybin and Everth Cabrera scored the tying and go-ahead runs on third baseman Jerry Hairston Jr.'s second throwing error of the seventh inning.
Jason Marquis (2-5) allowed two runs and six hits in six innings for San Diego.
Los Angeles left-hander Chris Capuano (9-5) was charged with four runs — all of them unearned — and five hits in 7 2-3 innings after his infield committed four errors behind him, all on poor throws.