Updated

As Brandon Barnes rounded the bases to celebrate his first big league homer, the Wrigley Field faithful threw the souvenir back onto the field.

Only this time, a second ball came flying back with it.

"We got the right one," Barnes confirmed with a grin.

Barnes' shot was all the Houston Astros managed Monday night as Jeff Samardzija matched a career high with 11 strikeouts in seven innings and the Chicago Cubs won 7-1.

The Astros have lost 25 of their last 27 road games.

"After (Samardzija) got that lead, it seemed like he really started throwing the ball well," Astros manager Brad Mills said. "There was a lot of movement. He was throwing (his slider and cutter) for what looked like strikes, and they were breaking out of the zone."

Samardzija (8-10) allowed one run and four hits. He also fanned 11 at Atlanta on July 2.

"It's my first year starting so I really want to show the staff that I can pitch late in the year and still pitch late in the games late in the year," Samardzija said. "It's a big proving year for me."

Darwin Barney and Alfonso Soriano hit two-run homers and Anthony Rizzo had four hits for the Cubs, who won for just the second time in 13 games..

The crowd of 31,452 was the smallest of the season at Wrigley Field.

Barnes had a pinch-hit shot in the sixth for the Astros, who have the worst record in the majors. Called up from the minors on Aug. 7, Barnes homered in his fourth big league game.

"Amazing. Not many words I can say. It was really cool," Barnes said. "I wasn't 100 percent sure it was going out. Once I saw it was out, I was pretty excited."

Armando Galarraga (0-3) was tagged for five runs and seven hits.

"Two home runs cost me the game," Galarraga said. "Believe it or not, it was a better start than the last couple. I threw more strikes, threw everything I wanted to. I just missed those two."

Samardzija came into the game with the second-lowest run support in the majors at 3.19. Chicago had scored two or fewer runs for him in 11 of his last 12 outings.

Starlin Castro led off the Cubs second with a single and two outs later, Barney hit his sixth homer.

In the third, Rizzo singled home Josh Vitters to give Samardzija a three-run cushion.

After Rizzo singled in the fifth, Soriano hit his 21st home run.

Welington Castillo had an RBI infield single in the seventh and Vitters drove in Barney with a sacrifice fly in the eighth.

NOTES: Lucas Harrell, Tuesday's scheduled starter for Houston, will try for his 10th win of the season. He ranks first among NL rookies in innings pitched. ... Cubs starter Chris Volstad will try to win his first game since July 10, 2011, on Tuesday. He has not won in 22 starts. ... Astros C Jason Castro was back in the lineup after missing nearly a month with a right knee contusion. He was 1 for 4 and struck out three times.