Ross Detwiler (3-1) allowed one run and three hits over 6 1-3 innings in his longest outing this season.
Ian Kennedy (3-1) lost for the first time in 13 starts, snapping a personal nine-game win streak.
The NL East-leading Nationals took two of three from Arizona and have won five of their six series this season. Henry Rodriguez pitched the ninth for his sixth save.
MARLINS 3, GIANTS 2
SAN FRANCISCO (AP) — Hanley Ramirez drove in a pair of runs without a hit to back Anibal Sanchez's first win in four starts, and Miami rebounded from a rough stretch to complete a three-game sweep of the Giants.
Sanchez (2-0) allowed one run on seven hits, struck out five and walked one in seven innings.
Omar Infante and Brett Hayes each had three hits for the Marlins.
Giants starter Ryan Vogelsong (0-2) was tagged for eight hits in seven innings, struck out five and walked four while throwing 116 pitches.
PIRATES 6, CARDINALS 3
ST. LOUIS (AP) — Ottawa native Erik Bedard struck out a season-high 11, including a team-record seven in a row, and Pittsburgh set a club mark by fanning 17 batters in a win over the Cardinals.
Bedard (2-4) was pulled after five innings. Pittsburgh relievers kept piling up the strikeouts — the 17 Ks were the most by Pittsburgh in a nine-inning game since 1900, the team said in citing research by the Elias Sports Bureau.
Pedro Alvarez hit a go-ahead, two-run homer in the sixth as Pittsburgh avoided a sweep.
Jake Westbrook (3-2) lost to Pittsburgh for the second time in three starts, giving up four runs in 6 1-3 innings.
PHILLIES 4, BRAVES 0
ATLANTA (AP) — Joe Blanton pitched a three-hitter for his first shutout in five years and Shane Victorino hit a two-run homer to lead the Phillies over the Braves.
Blanton (3-3) did not walk a batter and had six strikeouts in his third career shutout, his first since June 2, 2007, for Oakland against Minnesota.
Laynce Nix had two hits, including a homer, for the Phillies.
Randall Delgado (2-3) allowed six hits and two runs with no walks in eight innings.
REDS 4, CUBS 3
CINCINNATI (AP) — The Cincinnati Reds scored three runs in the ninth off Carlos Marmol to tie it, and Scott Rolen hit a sacrifice fly in the 10th inning for a victory.
Marmol walked three of the five batters he faced, one with the bases loaded. Marmol has blown three of his five save chances, walking 12 in 8 2-3 innings.
Ryan Dempster of Gibsons, B.C., returned from the disabled list and pitched eight shutout innings on his 35th birthday. He allowed only three hits and was in line to get his first win since Aug. 11.
Dempster got the better of Homer Bailey, who turned 26. It was the first time in major league history that both starters were celebrating a birthday, according to information provided by the Reds, citing the Elias Sports Bureau.
Rafael Dolis (1-2) was the loser. Logan Ondrusek (2-0) pitched the 10th for the win.