CHICAGO -- Anthony Rizzo went 2-for-3 and delivered all the runs starter Edwin Jackson needed as the Chicago Cubs topped the St. Louis Cardinals 3-0 Thursday night.
Rizzo finished with three RBIs, driving home runs in the first and third innings in the opener of a four-game series at Wrigley Field.
Jackson (6-10) had his most productive outing of the season with seven shutout innings.
St. Louis right-hander Jake Westbrook (5-4) also worked seven innings, allowing three earned runs on seven hits and four walks while striking out two. It was his sixth start since coming off the disabled list in mid-June after missing 33 games with an inflamed right elbow.
Cardinals first baseman Matt Adams sought to break Jackson's shutout in the seventh, sending a long drive to deep center to lead off the inning.
Center fielder Brian Bogusevic made the catch at the wall, but misjudged a ball hit by the next batter as Allen Craig doubled to the same spot. Craig reached third after Yadier Molina grounded to third, but Jackson got David Freese to strike out swinging to end the inning.
Jackson left after tying a season-high seven innings of work and his first scoreless effort of the season. He allowed three hits while striking out five and walking none.
Right-hander Blake Parker entered in relief to start the eighth but put runners on first and second and departed with one out for left-hander James Russell, who got Matt Carpenter to line out to center.
Right hander Pedro Strop then came in, threw a wild pitch to advance runners to second and third but got Carlos Beltran to strike out swinging on a 2-2 pitch to escape unscathed.
Cardinals left-hander Randy Choate pitched a one-two-three eighth in relief. Cubs closer Kevin Gregg put two runners on in the ninth and had the potential tying run at the plate. But he got Jon Jay to fly to left to wrap up Chicago's first shutout victory since beating the White Sox 7-0 on May 27.
The Cubs jumped on Westbrook for a first-inning run after Starlin Castro singled with one out and Rizzo brought him home with a double to the ivy in right-center field.
Rizzo drove in two more in the third for a 3-0 Cubs lead with Luis Valbuena on third and Castro perched at second with none out.
Cardinals left fielder Matt Holliday left the game in the fourth inning with right hamstring tightness after grounding out to short.
St. Louis had only one runner in scoring position in the early going. Freese doubled to deep left center with two out in the first but failed to advance.
The game was the seventh of 19 the teams will play this season.
Thursday's game was the second time in a week the Cubs have faced a team with the best record in the National League. Last weekend, the Cubs took two of three from Pittsburgh, which entered the series with baseball's best record.
The Cardinals send right hander Joe Kelly (0-3) against the Cubs' Carlos Villanueva (2-4) in Friday's game.
NOTES: The Cubs recalled RHP Michael Bowden from Triple-A Iowa on Thursday and sent LHP Brooks Raley to the Iowa affiliate. Bowden, a member of the Cubs' Opening Day roster, was sent down on May 21 to make room for Matt Garza, coming off the disabled list. Raley made his 2013 Cubs debut on Wednesday and allowed two runs in 4.1 innings of relief against the Angels. ... Alfonso Soriano has clubbed eight home runs in his last 12 games and is now seventh all time among active players with 387. ... The Cardinals recalled RHP Carlos Martinez from Triple-A Memphis for the second time this season. He made seven relief appearances in May and was 0-0 with a 4.50 ERA. ... All-Star OF Beltran appeared in his 2,000th major league game, 10th among active players. ... The Cardinals will have played 93 games by Sunday, the most going into the All-Star break since 96 in 2008.