Frank Schwindel launched a long solo homer and doubled among his three hits, and the Chicago Cubs topped the St. Louis Cardinals 7-5 on Thursday night for their third straight victory.
Willson Contreras went deep for the third time in four games and Ian Happ also homered to help Chicago end the Cardinals' three-game winning streak. St. Louis had also won five in a row at Wrigley Field dating to last July.
At 22-29, the Cubs don't rank as an NL powerhouse, but Chicago has been productive at the plate recently with 19 runs in its last three games and 35 in the last seven.
Paul Goldschmidt doubled to extend his hitting streak to 24 games and reached safely for a career-best 38th consecutive game. He went 1 for 5 with an RBI and a run scored. His career-high hitting streak is 26, from Sept. 10, 2013, to April 4, 2014, with Arizona.
Keegan Thompson (6-0) was effective again in a spot start, allowing three runs and five hits in a career-high 5 1/3 innings for a win in his fourth straight outing. The 27-year-old right-hander made his second straight start and fourth of the season.
Thompson exited after back-to-back walks in the sixth and reaching 89 pitches.
St. Louis' Harrison Bader hit a two-run homer off Mychal Givens in the ninth to make it close.
Cubs rookie Christopher Morel doubled, walked and scored two runs to extend his career-opening on-base streak to 16 games.
Matthew Liberatore (1-1), the Cardinals' top pitching prospect, was tagged with Chicago's three homers and four runs in his third start and first loss. The 6-foot-5, 22-year-old lefty allowed six hits in 3 1/3 innings.
Morel lined Liberatore's second pitch to the left-field wall for a double. Contreras followed with his ninth homer, to the basket in left, putting Chicago ahead 2-0.
Goldschmidt ripped a double to the left-center gap in the third to extend his streak and drive in the Cardinals' first run. He scored on Nolan Arenado's single to tie it at 2.
Schwindel's drive in the bottom half reached the base of the left-field scoreboard - a blast measured at 436 feet - and put Chicago back ahead 3-2. Schwindel finished 3 for 4 with two RBIs, including a sacrifice fly in the eighth.
Happ launched Libertore's first pitch in the fourth to the left-center bleachers to make it 4-2.
Chicago led 5-3 entering the eighth, then added two insurance runs on Patrick Wisdom's bases-loaded walk and Schwindel's sacrifice.
Cardinals rookie 2B Nolan Gorman (lower back tightness) missed his third consecutive game, but Marmol said before the game Gorman could be available to pinch hit. OF Tyler O'Neill, out since May 17 with a right shoulder impingement, is scheduled to begin a rehab assignment with Triple-A Memphis on Friday as DH, then play the field later in the weekend. RHP Jack Flaherty (right shoulder) and LHP Steven Matz (shoulder impingement) threw bullpen sessions in St. Louis on Thursday. Flaherty could begin a rehab assignment next week at Double-A Springfield.
Cubs: Contreras left in the eighth after being hit on the left ankle by a pitch from T.J. McFarland. Manager David Ross said X-rays were negative. LHP Wade Miley, on the 15-day IL since May 26 with a left shoulder strain, threw a bullpen session Thursday. RHP Alec Mills, who hasn't pitched in the majors this season because of a back strain and right quadriceps strain, was in the clubhouse before the game. He'll make a rehab start at Triple-A Iowa on Tuesday and hopes to pitch five innings. Mills is eligible to come off the 60-day IL on Monday.
Cardinals RHP Miles Mikolas (3-3, 2.67) faces Cubs RHP Marcus Stroman (2-4, 3.02) on Friday. Stroman tossed seven scoreless innings against the White Sox on Sunday in a no-decision.