Reed Johnson, Alfonso Soriano and Geovany Soto each homered Wednesday night and the Chicago Cubs kept up their power surge in a 4-2 win over the Washington Nationals.
The Cubs have connected in eight straight games and have hit 19 home runs over that stretch.
Johnson added three singles in his seventh career four-hit game. Soriano also doubled and drove in two runs and Soto scored twice.
Rodrigo Lopez (3-3) allowed one earned run and five hits in 5 2-3 innings. He gave up 12 earned runs over 8 1-3 innings in his previous two starts.
Carlos Marmol struck out three in a scoreless ninth for his 25th save in 32 chances.
Ross Detwiler (1-2) gave up three runs and seven hits over five innings. He fell to 0-8 in 16 career road appearances, including 10 starts.
Jayson Werth hit a solo home run and singled for Washington.
The Nationals scored first, getting an unearned run in the opening inning on a throwing error by shortstop Starlin Castro that let Ryan Zimmerman to score all the way from first. The Cubs have surrendered 90 first-inning runs this season, the most in the big leagues.
Castro's miscue was the Cubs' 95th error on the season, most in the National League. Lopez recovered to retire the next nine batters and hold the Nationals scoreless until Werth's homer in the sixth.
Zimmerman extended his hitting streak to 18 games. That's the second longest for the Nationals in the seven seasons since they moved to Washington from Montreal. Zimmerman had a 30-game hitting streak in 2009.
The Cubs tied it in the second when Soto led off with his 12th homer of the season, a shot that just sneaked into the first row of the bleachers inside the left-field foul pole.
Chicago took the lead in the fourth but missed a chance at a big inning. Soto walked with one out and scored on Soriano's bloop double off the right-field line that a sliding Werth just missed running down.
Washington then intentionally Darwin Barney with the pitcher on deck, but Lopez singled to center. The slow-running Soriano was unable to score on the play, leaving the bases loaded for Castro, the NL hits leader. Castro struck out, ending the threat.
Johnson put the Cubs up 3-1 with his fifth homer leading off the fifth.
Werth cut the lead to 3-2 in the sixth with a homer into the left-center field bleachers, his 14th of the season. That was it for Lopez, who departed after 89 pitches.
Reliever Collin Balester came on for Washington to begin the sixth. With one out, Soriano homered into left center, his 20th home run of the season, putting the Cubs up 4-2. Soriano has now homered at least 20 times in 10 straight seasons, joining St. Louis' Albert Pujols and Boston's David Ortiz as the only players with to reach that mark in each season of the last decade.
Castro singled in the first but was thrown out trying to stretch the play into a double. That upped his hitting streak to 10 games.
It was a long night for Castro, however, who matched a career high by striking out three times. He also committed his 19th error, most in the National League.