Halladay (6-1) allowed one earned run in seven innings. He tied a season high with nine strikeouts, and even talked manager Charlie Manuel into letting him get one more out after allowing a run in the seventh.

Jayson Werth hit a three-run homer and Raul Ibanez also went long as Philadelphia took three of the last four in the series between NL divisional leaders.

St. Louis starter Kyle Lohse (0-2) allowed five runs in four innings.

There was a moment of silence before the game for former Phillies pitcher Robin Roberts, who died Thursday. The Hall of Famer's No. 36 jersey was hung in the Philadelphia dugout and will remain there the rest of the season.

In Miami, Matt Cain held Florida hitless until the sixth as San Francisco completed a three-game sweep.

Cain (2-1) worked into the eighth inning, giving up two runs. The Giants starters combined to allow just six runs in 21 innings over the series.

Aaron Rowand contributed a triple, a two-run single and a lunging catch in center field for San Francisco. He is 7 for 16 with seven RBIs in four games since coming off the disabled list.

Florida starter Ricky Nolasco (2-2) allowed three runs in six innings.

: In Washington, Scott Olsen took a no-hitter into the eighth inning, guiding Washington to a tight win over Atlanta.

Braves reliever Eric O'Flaherty (1-1) walked Adam Kennedy leading off the ninth. Peter Moylan came in and gave up a double to Ryan Zimmerman, then intentionally walked Cristian Guzman to load the bases with no outs.

Pinch-hitter Willie Harris then grounded a single just past the second baseman for the winning run.

Tyler Clippard (4-0) got the final five outs for the Nationals and took the win.

In Pittsburgh, Lastings Milledge drove in four runs to help Pittsburgh earn its first sweep of Chicago in nearly four years.

Garrett Jones added three RBIs as the Pirates won by more than four runs for the first time since opening day.

Pittsburgh stater Brian Burres (2-1) pitched seven shutout innings to win his second in a row. Before that, he hadn't won in nearly two seasons.

The Pirates scored five runs in the first inning against Cubs starter Randy Wells (3-1).

In Los Angeles, Andre Ethier hit a game-winning grand slam in the ninth to lift Los Angeles over Milwaukee.

Dodgers closer Jonathan Broxton (2-0) took the mound in the top of the ninth trying to protect a 3-1 lead but the Brewers got four hits and tied the game on two-out RBI singles by Gregg Zaun and Corey Hart.

However Ethier drove a LaTroy Hawkins pitch to center field for his NL-leading 10th homer of the season. It was his second game-ending hit of the season and 11th since the start of the 2008 season.

Ethier has had two at-bats this season with the bases loaded, both of them grand slams.

In Houston, Dan Haren struck out nine in his first complete game this season, steering Arizona past Houston.

Haren (4-1) walked just one for his 10th career complete game.

Tony Abreu had a career-high four hits, and Kelly Johnson led off the game with his 10th home run, tying him for the NL lead.

The Astros lost for the ninth time in 10 games. Astros starter Wandy Rodriguez (1-4) had his worst outing of the season, yielding five runs in 3 2-3 innings.