CHICAGO -- Jeff Samardzija struck out a career high-tying 11 in seven innings and the Chicago Cubs beat the Houston Astros 7-1 on Monday night.
Darwin Barney and Alfonso Soriano hit two-run homers and Anthony Rizzo had four hits for the Cubs.
Chicago won for just the second time in 13 games. The Astros have lost 25 of its last 27 road games.
The crowd of 31,452 was the smallest of the season at Wrigley Field.
Samardzija (8-10) allowed one run and four hits. He also fanned 11 at Atlanta on July 2.
The Astros, who have the worst record in the majors, got their run on the first career homer by rookie Brandon Barnes, a pinch-hit shot in the sixth.
Armando Galarraga (1-2) was tagged for five runs and seven hits.
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.
Samardzija struck out the side in the fourth and fanned Jason Castro leading off the fifth for his fifth consecutive strikeout.
After Rizzo singled in the fifth, Soriano hit his 21st home run.
Wellington Castillo had an RBI infield single in the seventh and Vitters drove in Barney with a sacrifice fly in the eighth.
Barnes, called up from the minors on Aug. 7, homered in his fourth big league game.
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.