Harper became the youngest major leaguer to homer since 1998, going deep on a solo shot to straightaway centre field in the third inning off right-hander Tim Stauffer. The home run came in the outfielder's 15th game and 54th at-bat with the Nationals.
Washington also lost another player to injury in a season that has been filled with them. Catcher Sandy Leon — making his major league debut — left the game in the fourth inning after spraining his right ankle in a collision at home plate.
Craig Stammen (3-0) got the win in relief, while Sean Burnett picked up his first save. Miles Mikolas (0-1) took the loss.
PHILLIES 5, ASTROS 1
PHILADELPHIA (AP) — Joe Blanton pitched seven-plus strong innings and Placido Polanco homered for his 2,000th career hit to lead the Philadelphia Phillies over the Houston Astros.
Blanton (4-3) allowed six hits and one run, struck out seven and walked one while pitching in a steady light rain throughout. The right-hander continued his solid recent stretch, improving to 3-0 with a 2.10 ERA in his last four starts.
Freddy Galvis had three hits and drove in a pair of runs and Carlos Ruiz went 2 for 4 with an RBI for the Phillies, who have won three of four since manager Charlie Manuel's much-publicized team meeting last Wednesday.
Marwin Gonzalez, pinch hitting to lead off the eighth, hit his first major league homer for the Astros' lone run. Lucas Harrell (2-3) took the loss.
REDS 3, BRAVES 1
ATLANTA (AP) — Brandon Phillips drove in the go-ahead run with a double off the centerfield wall and the Cincinnati Reds scored two runs off Jonny Venters in the eighth inning to beat the Atlanta Braves.
The game was tied 1-1 when Drew Stubbs led off the eighth with an infield hit between the pitcher's mound and third base. Stubbs moved to second base on a wild pitch by Venters (2-2). With one out, Phillips drove in Stubbs with the double. Chris Heisey added another double, his third hit of the game, to drive in Phillips.
Braves first baseman Freddie Freeman left the game after the seventh inning with blurred vision in his right eye. His status was to be updated after the game.
Logan Ondrusek (3-0) gave up one hit and one walk while recording two outs for the win, while Sean Marshall pitched the ninth for his sixth save.
METS 3, BREWERS 1
NEW YORK (AP) — Miguel Batista pitched seven shutout innings of four-hit ball and Daniel Murphy supplied the offence, sending the surprising New York Mets past the Milwaukee Brewers.
Given a vote of confidence by manager Terry Collins before the game, struggling closer Frank Francisco bounced back from a pair of rough outings to earn his ninth save. Murphy extended his recent tear at the plate by hitting an RBI single and scoring on a suicide squeeze — a play the Brewers failed to execute earlier.
The 41-year-old Batista (1-1), replacing injured Mike Pelfrey in the rotation, outpitched Brewers ace Yovani Gallardo (2-4), who matched his career high with six walks in six shaky innings.
PIRATES 3, MARLINS 2
MIAMI (AP) — Brad Lincoln pitched six innings to earn a victory in his first start of the season, and the Pittsburgh Pirates ended a streak of eight consecutive losses against the Marlins.
Lincoln (3-0), who had come out of the bullpen in his seven previous appearances this season, departed for a pinch-hitter with a 3-2 lead and an ERA of 1.33. He allowed four hits and walked one.
The Pirates, who rank last in the majors in runs, won with only six hits. Rod Barajas, who came into the game batting .162, hit his second homer, and Pedro Alvarez put Pittsburgh ahead to stay with an RBI double in the sixth.
The Pirates hadn't beaten the Marlins since 2010 and went 0-6 against them last year. Miami's Anibal Sanchez (2-1) took the loss.
CUBS 6, CARDINALS 4
ST. LOUIS (AP) — Alfonso Soriano singled in the go-ahead run in the eighth inning and the Chicago Cubs sent the St. Louis Cardinals to their fourth straight loss at home.
Bryan LaHair had three hits for the Cubs, including a two-run homer to break a 1-for-14 slump. Chicago's late rally wasn't enough to make a winner of Canadian starter Ryan Dempster, whose winless streak reached 15 starts dating to last August.
Shawn Camp (2-1) allowed one hit in two innings of work and Rafael Dolis worked the ninth for his fourth save. Mitchell Boggs (0-1) took the loss.
DODGERS 3, DIAMONDBACKS 1
LOS ANGELES (AP) — Clayton Kershaw outpitched Ian Kennedy after exchanging brushback pitches with his fellow ace, leading the Los Angeles Dodgers over the Arizona Diamondbacks without injured star Matt Kemp.
The Dodgers centre fielder was placed on the 15-day disabled list following the game because of a strained left hamstring. Kemp had played 399 consecutive games, the longest active streak in the majors. Andre Ethier homered in Kemp's absence as the Dodgers won their fifth straight.
Kemp missed his first game since Aug. 18, 2009. Third baseman Juan Uribe, who was in manager Don Mattingly's original lineup, also was placed on the 15-day disabled list because of an injury to his left wrist.
Kershaw (3-1) scattered four hits over seven innings and Kenley Jansen earned his fourth save, helping the Dodgers improve the best record in the majors to 24-11. Ian Kennedy (3-3) allowed three runs — two earned — and six hits in six innings.
GIANTS 3, ROCKIES 1
SAN FRANCISCO (AP) — Buster Posey hit a go-ahead RBI single in the eighth inning, and the San Francisco Giants beat the Colorado Rockies to match their best winning streak of the season at three games.
Gregor Blanco hit a tying home run leading off the sixth for San Francisco and also added a pair of singles, including one to start the rally in the eighth against loser Rex Brothers (1-2). Joaquin Arias then beat out an infield single when Rockies catcher Wilin Rosario tried to let the bunt up the first base line roll foul and it stayed fair. He rushed his throw to first and the ball got past Todd Helton for an error that moved Blanco to third.
Sergio Romo (2-0) struck out Michael Cuddyer with runners on second and third to end the eighth for the win. Santiago Casilla finished for his eighth save.