Willson Contreras connected twice for his first career multihomer game, Eddie Butler threw six scoreless innings in his season debut and the Chicago Cubs beat St. Louis 3-2 Friday, ending the Cardinals' six-game winning streak.

The Cubs won for just the second time in seven games. They played without NL MVP Kris Bryant, who was scratched from the lineup with a stomach virus.

Butler (1-0), who pitched the last three seasons with Colorado and was traded to the Cubs before spring training, gave up two hits. He struck out five and walked three.

Wade Davis got his eighth save in as many tries.

Contreras homered twice off Mike Leake (4-2), who entered with the National League's best ERA and had only given up one home run in six starts.