The Chicago Cubs kept up their power surge Wednesday night, and it continued at Wrigley Field, too.

Reed Johnson enjoyed the location most of all.

Johnson, Alfonso Soriano and Geovany Soto homered and Chicago beat the Washington Nationals 4-2 for its eighth victory in its last 10 games.

The disappointing Cubs have little to play for over the final two months of the season, but Johnson is glad the club is finally putting on a show for the Wrigley faithful.

"It's better for us and it's better for our fans," Johnson said. "I know we haven't been too impressive really at all in any part of the year. ... We're playing pretty good baseball now. I'm glad fans are getting to see that."

Johnson also had three singles in his seventh career four-hit game. Soriano also doubled and drove in two runs, and Soto scored twice.

The Cubs have connected in eight straight games and have hit 19 home runs over that stretch.

Chicago starter Rodrigo Lopez (3-3) allowed two runs, one earned, and five hits in 5 2-3 innings. He gave up 12 earned runs over 8 1-3 innings in his previous two starts.

"I think I had a good game going on," Lopez said. "I wish I could go longer, but I guess there was a good reason (to be removed) after my last two outings. I come out with a good feeling about myself and at the end, it works for all of us."

Carlos Marmol struck out three in a scoreless ninth for his 25th save in 32 chances. The Cubs' bullpen, which has been dominating at times this season, racked up 3 1-3 scoreless innings.

"They're good and they're really good when they're fresh," Cubs manager Mike Quade said of his relievers.

Ross Detwiler (1-2) pitched five innings for Washington, yielding three runs and seven hits. He dropped to 0-8 in 16 career road appearances, including 10 starts.

"It's not one thing," Detwiler said of his road woes. "It's a pitch here, a pitch there, not getting a bunt down. Little things."

Jayson Werth hit a solo home run and singled for Washington.

"(Lopez has) been pitching a long time, he knows what he's doing out there," Werth said. "He was moving the ball around, changed speeds. Just kept us off balance.

"I was able to get one up in the air. This time of year in Chicago, if you get one up, usually it will go. The ball was flying today, unfortunately we were just on the other side."

The Nationals scored first, getting an unearned run in the opening inning on a throwing error by shortstop Starlin Castro that let Ryan Zimmerman score all the way from first.

The Cubs have surrendered 90 first-inning runs this season, most in the big leagues. Castro's miscue was the Cubs' 95th error on the season, most in the National League.

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 sneaked into the first row of the bleachers inside the left-field foul pole.

"Right now everything seems to be going the right direction," Soto said.

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.

"I just put my head down and kept running," Soto said.

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 led off the fifth with his fifth homer, putting the Cubs up 3-1.

"I kind of rolled a couple through the hole early and it started to relax me a little bit," Johnson said.

Werth responded with his 14th homer, a drive into the bleachers in left-center in the sixth. That was it for Lopez, who departed after 89 pitches.

"There are times when you want to get a guy out of there when he's feeling good about himself," Quade said. "After the home run, it was a little earlier than I wanted to go to (reliever Jeff) Samardzija, but it happens."

Detwiler was pulled after throwing 84 pitches. Nationals manager Davey Johnson gave him passing marks, but just barely, noting Detwiler had only been starting for a short while.

"He's been in the bullpen," Johnson said. "I give him a C-plus for tonight. The two ballparks he's pitched in lately, you have to be perfect, you can't make any mistakes. He minimized the damage tonight."

Soriano connected against Collin Balester with one out in the sixth, hitting a drive to left-center for his 20th homer. Soriano has homered at least 20 times in 10 straight seasons, joining St. Louis' Albert Pujols and Boston's David Ortiz as the only players to reach that mark in each season of the last decade.

"I'm very proud of myself because I work hard and try to be consistent in this game," Soriano said. "I never expected to hit 20 home runs in this game but I did. I think it's because of the hard work and concentration and the love that I have for the game."

NOTES: After being a late scratch Tuesday because of back spasms, Cubs 3B Aramis Ramirez returned to the lineup. Quade didn't issue a lineup until after Ramirez went through pregame batting practice. Once he completed that with no complications, he was cleared to play. Ramirez leads all major league players with 15 home runs since June 25. ... Davey Johnson said of ailing catcher Ivan Rodriguez, "He's not doing too well. He's pushing it too hard and he's had a setback." Rodriguez has been on the disabled list since July 7 with a strained right oblique. There is no current timetable for his return. ... The Cubs and Nationals wrap up their three-game series Thursday afternoon in a makeup of Monday's rainout. Ryan Dempster will look to continue his solid pitching of late in his start for the Cubs. He is 5-3 with a 3.26 ERA over his last 12 starts. Jordan Zimmermann will take the mound for Washington. Zimmermann has a 6.35 ERA in his two career starts against Chicago. ... The Cubs unveiled a statue of longtime third baseman and broadcaster Ron Santo in a ceremony before Wednesday's game. The statue depicts Santo making a throw and is place in the plaza on the southeast corner outside Wrigley Field. ... Castro's streak of scoring a run in 10 straight games came to an end. The last Cub to score 11 games in a row was Rick Monday in 1976.