Updated

Edwin Jackson spun seven scoreless innings to help lift the Chicago Cubs past the St. Louis Cardinals, 3-0, in the opener of a four-game set at Wrigley Field.

Jackson (6-10) scattered just three hits without surrendering a walk for the first time all year. It's Jackson's third straight win.

"Things have been coming together for him," said Cubs manager Dale Sveum about Jackson. "He was obviously sharp against the best lineup in baseball."

Anthony Rizzo drove in all three runs while Starlin Castro had three hits and scored twice for the Cubs, who have won five of their last six games.

Jake Westbrook (5-4) had an effective outing, but the Cardinals offense was nowhere to be found. He yielded three runs on seven hits and four walks over seven frames.

"I wasn't as sharp tonight as I have been," said Westbrook. "But I thought I battled pretty hard and was able to keep it close and give us a chance."

Allen Craig registered two of the four hits for St. Louis, which had a five- game win streak snapped.

Rizzo started the scoring in the first with a double that rolled to the ivy in right-center to score Castro, who reached on a base hit.

Luis Valbuena worked a walk and Castro singled to start the third. A wild pitch put the runners in scoring position. Rizzo cracked a single through the left side on the infield to make it 3-0 Cubs.

The Cardinals best opportunity to score came in the eighth inning. Jon Jay singled and pinch-hitter Daniel Descalso worked a walk. With two outs the runners advanced on a wild pitch, but Pedro Strop struck out Carlos Beltran to escape the jam.

Kevin Gregg missed first baseman Rizzo's toss to first which allowed Craig to reach base in the ninth. After a two-out walk to David Freese, Gregg was able to get Jay to line out to secure his 16th save of the season.

Game Notes

Chicago is 14-26 against the National League Central ... The Cubs had an 11-game home run streak at Wrigley Field snapped ... St. Louis went 0-for-6 with runners in scoring position, while Chicago finished 1-for-6 ... It was Beltran's 2,000th career game.