WASHINGTON — Tim Hudson pitched seven innings of four-hit ball, Evan Gattis homered, and the Atlanta Braves beat Stephen Strasburg and the Washington Nationals 3-1 Saturday for their eighth straight victory.

Hudson (2-0) allowed one run, walked none and struck out three. Not only did the right-hander outpitch Strasburg, but he also got two singles off Washington’s hard-throwing ace.

Strasburg (1-2) gave up two unearned runs and five hits in six innings. He struck out seven, walked one and hit a batter.

Atlanta took the lead for good in the third inning, when Gattis homered after a two-out throwing error by Nationals third baseman Ryan Zimmerman. It was the fourth homer in eight games for Gattis, who made his major league debut on April 3.

Cardinals 8, Brewers 0: In St. Louis, Adam Wainwright threw a four-hitter and drove in two runs with three hits, two in a seven-run sixth inning, for the Cardinals.

Wainwright (2-1) struck out 12 and walked none.

Milwaukee ace Yovani Gallardo (0-1) endured yet another setback against his nemesis, falling to 1-10 with a 6.83 ERA against St. Louis after getting charged with five earned runs in 5.1 innings. Gallardo was 0-2 with a 12.34 ERA in three starts against St. Louis last season.

Dodgers 7, Diamondbacks 5: In Phoenix, Hyun-Jin Ryu struck out nine in six innings, getting his first three major league hits in the process, for the Los Angeles Dodgers.

Adrian Gonzalez went 3-for-4 with a home run and two RBIs. Matt Kemp singled in two runs, Skip Schumaker had an RBI double and Andre Ethier singled in a run for Los Angeles.

The Dodgers led 6-1 after six innings, but Arizona tried to rally on pinch-hit RBIs from Eric Hinske, Eric Chavez and former LSU star Aaron Hill, and a home run by Martin Prado.

Giants 3, Cubs 2: In Chicago, Madison Bumgarner allowed two runs while pitching into the seventh inning, and Marco Scutaro had three hits for the San Francisco Giants.

Pinch-hitter Dioner Navarro hit a two-out, two-run homer off Bumgarner in the seventh to pull the Cubs to 3-2. It was Navarro’s second career pinch home run, both in the past two days, each from a different side of the plate. His tying homer in the ninth Friday was hit from the left side.

The Cubs threatened in the eighth, putting two on with no outs, before Alfonso Soriano grounded out and Welington Castillo hit into a double play..

Pirates 3, Reds 1: In Pittsburgh, Jeff Locke won for only the second time in three major league seasons, and Cincinnati starter Johnny Cueto left in the fifth inning with a strained right triceps.

After striking out Pedro Alvarez starting the fifth, Cueto threw a first-pitch strike to Travis Snider then began shaking his right arm.

A Reds trainer visited Cueto on the mound, briefly massaged the pitcher’s upper arm, and both then walked to the dugout.

Marlins 2, Phillies 1: In Miami, Chris Coghlan hit a game-ending single against a draw-in infield with one out in the ninth inning for the Marlins.

Marlins 20-year-old starater Jose Fernandez pitched six scoreless innings to outduel Cole Hamels.

Fernandez also gave Miami the lead in the fifth with an RBI single.

Rockies 9, Padres 5: In San Diego, Wilin Rosario had a career-high four hits and drove in three runs for the Padres.

Rosario broke a 1-1 tie in the second with his fourth home run of the season, a two-run drive off Edinson Volquez (0-3). Rosario made it 5-1 with an RBI single in the third, singled off Thad Weber leading off the fifth and singled off Joe Thatcher in the ninth.

Interleague

Mets 4, Twins 2: In Minneapolis, Matt Harvey didn’t allow a hit until Justin Morneau homered off the right-field foul pole with two outs in the seventh inning to improve his record to 3-0.

Harvey allowed one run and two hits in eight innings with six strikeouts and two walks. His ERA rose from 0.64 to 0.82.