NEW YORK — Matt Harvey rediscovered his form with seven dominant innings of two-hit ball, Neil Walker homered off Jose Quintana, and the New York Mets beat Chicago 1-0 Monday to send the reeling White Sox to their seventh straight loss.

Harvey (4-7) has been one of baseball’s biggest puzzles, transforming from a premier pitcher to baffled ballplayer. Two weeks ago, he was booed at Citi Field when he lasted just 22/3 innings against Washington.

With both teams wearing special Memorial Day uniforms with camouflage lettering and trim, Harvey struck out six and walked two to win for the first time since May 8. His fastball velocity was up markedly, and he threw 61 of 87 pitches for strikes.

MARINERS 9, PADRES 3: Kyle Seager’s two-run homer in the sixth inning snapped a 2-all tie and Dae-Ho Lee’s three-run shot capped a five-run eighth inning to give Seattle a win at home.

ASTROS 8, DIAMONDBACKS 3: Collin McHugh struck out eight in his first career complete game, Jason Castro had three RBI and Houston continued its recent surge with a win at Phoenix.

NATIONAL LEAGUE

CARDINALS 6, BREWERS 0: Matt Carpenter had four hits and scored three times while Carlos Martinez pitched eight innings in a win at Milwaukee.

Martinez (5-5) allowed five singles, walked one and struck out eight.

CUBS 2, DODGERS 0: Travis Wood and three other relievers combined for seven perfect innings after starter Jason Hammel left with cramps, and Chicago held Los Angeles to one hit in a win at home.

It was the Cubs’ sixth straight victory after losing eight of 12.

NATIONALS 4, PHILLIES 3: Daniel Murphy hit a solo homer and a tiebreaking two-run single, Tanner Roark threw seven sharp innings and visiting Washington held on for a win.

PIRATES 10, MARLINS 0: Jeff Locke tossed a three-hitter in a rout at Miami. Gregory Polanco’s grand slam, Sean Rodriguez’s two-run homer, and David Freese’s four hits helped power the offense for the Pirates.

BRAVES 5, GIANTS 3: Mallex Smith hit a three-run triple in the second inning and Mike Foltynewicz continued his recent upswing by allowing only three hits and one run in six-plus innings as Atlanta recorded a rare home win.

REDS 11, ROCKIES 8: Adam Duvall had his first career two-homer game, Joey Votto hit his 200th homer and Eugenio Suarez – who came in mired in an 0-for-28 skid – also went deep in a win at Denver.

AMERICAN LEAGUE

ATHLETICS 3, TWINS 2: Coco Crisp homered to lead off the game and Khris Davis hit a tiebreaking sacrifice fly in a win at Oakland, California.

Jed Lowrie added two hits and scored the game-winning run for the A’s.

BLUE JAYS 4, YANKEES 2: Marco Estrada pitched eight scoreless innings, Ryan Goins homered and Toronto won at home for its fifth win in six games.

RANGERS 9, INDIANS 2: Nomar Mazara hit a three-run homer and Ian Desmond added a two-run shot in a win at Cleveland.

ROYALS 6, RAYS 2: Eric Hosmer had a home run and three RBI as Kansas City won at home.