Anthony Rizzo hit a two-run homer in the 10th inning Sunday that lifted the Cubs over the St. Louis Cardinals 4-2.
Starlin Castro led off the 10th with a single against Trevor Rosenthal (0-1) and Rizzo followed with his seventh homer.
James Russell (5-0) worked an inning for the win. The Cubs are 12-3 in their last 15 home games.
A struggling Carlos Beltran homered off Shawn Camp with one out in the St. Louis eighth, tying it at 2. The opposite-field solo shot was his 23rd homer of the year, but just his third in July. The All-Star is hitting .188 this month.
Cubs starter Paul Maholm allowed one run and four hits over 6 2-3 innings. He walked four and struck out five.
Maholm exited with the bases loaded in the seventh, but reliever Manny Corpas retired Allen Craig on a fly ball to end the threat.
Maholm has allowed one run or fewer in six straight starts, becoming the first lefty in modern Cubs history to do so. He had won the previous five outings.
Cardinals starter Adam Wainwright gave up two runs in six innings. He wasn't fooling anybody early, allowing six of the first nine batters to reach base.
David DeJesus tripled in the Chicago first and scored on Castro's groundout. Darwin Barney doubled in the second and scored on an error in the second.
Barney had two doubles and a single.
Wainwright settled down to retire 12 of his final 14 batters.
Beltran's homer got Wainwright off the hook for what could have been his first loss in 13 career appearances at Wrigley Field. He is 5-0 at the ballpark, including his 20th win in 2010 when he finished second in the NL Cy Young voting.
Despite a throwing error that allowed Barney to score in the second, shortstop Daniel Descalso made several exceptional defensive plays, including a dazzling diving stab and throw in the third to rob Rizzo of a hit.