Gorzelanny (1-2) hadn’t lasted eight innings in a game since Aug. 12, 2007, when he threw a shutout for the Pittsburgh Pirates against the Giants.

Drew Storen pitched the ninth for his sixth save in six chances, closing out a game that took just 2 hours, 2 minutes — the fastest nine-inning game in the majors this season, according to STATS LLC.

Madison Bumgarner (0-5) retired Washington’s first 12 batters and didn’t allow an earned run but wound up with the loss because of two unearned runs in the seventh, his last inning. He allowed four hits.

The World Series champions were shut out for the third time in their last six games, including twice during this series, when Washington took three of four.

San Francisco has lost eight of its last 11, scoring 23 runs in that span.

In Los Angeles, Andre Ethier extended his hitting streak to 28 games with an infield single that capped a three-run fifth inning for Los Angeles.

Clayton Kershaw (3-3) pitched seven innings, allowing two runs and eight hits, including Alfonso Soriano’s major league-leading 11th homer leading off the seventh. The 23-year-old left-hander struck out four and did not walk a batter for the first time in seven starts this season.

Vicente Padilla pitched a perfect eighth and Jonathan Broxton did likewise in the ninth for his sixth save in seven attempts.

Ethier, halfway to the record 56-game streak Joe DiMaggio had in 1941, is three games shy of the Dodgers’ franchise record, set by Willie Davis in 1969.

James Russell (1-4) gave up five runs — four earned — and six hits over 4 2-3 innings for the Cubs.

In St. Louis, Mike Stanton hit a tying home run in the fifth inning and tripled and scored the go-ahead run in the eighth to lift Florida.

Gaby Sanchez ended Kyle Lohse’s 22-inning scoreless inning streak with his first grand slam, also Florida’s major league-leading third of the year. Edward Mujica (3-1) allowed a walk in two scoreless innings and Leo Nunez finished for his 10th save in 10 tries after the Cardinals put two men on in the ninth.

The Marlins improved to 18-9 — the franchise’s best start — and are tied with the Phillies for the NL East lead.

Mitchell Boggs (0-2) allowed Stanton’s triple in the eighth to take the loss.

In Atlanta, Alex Gonzalez hit a three-run double to give Atlanta the lead and the Braves finally solved Yovani Gallardo in beating Milwaukee.

David Ross homered in the third inning before the Braves chased Gallardo (2-2) in the sixth. Gonzalez cleared the bases with his double before scoring on a single by Nate McLouth .

Gallardo began the day 3-0 with a 0.96 ERA in five career starts against Atlanta, including a two-hit shutout in a 1-0 win April 5 at Milwaukee. The four runs he allowed in the sixth matched his total over 37 1-3 innings in his first five starts against the Braves.

Jair Jurrjens (3-0) gave up two runs and seven hits with no walks in 7 2-3 innings.

In San Diego, Garrett Jones and Chris Snyder each hit a two-run homer in the first inning to back James McDonald and help Pittsburgh snap a nine-game skid against San Diego.

The Pirates, who hadn’t beaten the Padres since 2009, have won four of six overall — including consecutive games for the first time since April 17-18.

The Padres, coming off two straight wins at Dodger Stadium, still haven’t won three straight games this season. San Diego had the tying run on third base with two outs in the ninth before Will Venable hit into a force.

McDonald (2-2) allowed two runs and five hits in six innings, struck out five and walked one. Joel Hanrahan pitched the ninth for his ninth save in as many chances.

Aaron Harang (4-2) went five innings, allowing four runs and five hits, with four strikeouts and two walks.