CHICAGO -- Eddie Butler continues to make a case that he belongs on the Chicago Cubs' roster.
"Today we really attacked the zone, limited the walks and were ahead in the count a lot," Butler said after he picked up his third victory since a May 12 arrival.
Butler (3-1) allowed three hits, walked one and struck out four. But it wasn't all just him.
He was quick to credit Cubs' defensive performance, including a snap eighth-inning pickoff throw by catcher Willson Contreras to first base to catch Miami's JT Riddle that stymied a potential rally.
"It's huge," Butler said. "It limits the number of pitches, limits the guys on base and ends up limiting the runs."
Miami (24-32) saw a three-game winning streak snapped.
Bryant went 1-for-4 with a first-inning homer, and Almora was 2-for-3 with a fourth-inning blast on a chilly evening with temperatures in the upper 50s and strong winds from the north.
Marlins starter Dan Straily (4-4) saw a three-game winning streak end as his teammates struggled at the plate.
Butler, meanwhile, sailed into the sixth inning with a 3-0 lead before giving up two doubles and a run.
Riddle's two-base hit to deep center led off the inning. Riddle reached third on Straily's grounder to second and scored on Dee Gordon's sacrifice fly to center.
Montgomery pitched 3 1/3 scoreless innings and earned his second save. He gave up three hits and struck out three.
"He pitches really well against right-handed hitters," Cubs manager Joe Maddon said. "The biggest problem he's had are the walks. He didn't walk anybody, and that's the difference in that game, that's why it was so clean."
Straily worked seven innings before he was pulled for a pinch hitter. He allowed three runs on six hits, struck out five and walked none. However, he was behind almost immediately.
Ben Zobrist led off with a double off the center field wall, and Bryant brought him home, hitting a 1-0 pitch to left for his team-leading 13th homer of the season.
"Obviously not the way I wanted to get going there with the first two guys, but you can't sit there and feel sorry for yourself," Straily said. "There's a lot of ballgame left and I had to keep pitching."
Marlins manager Don Mattingly said, "I thought Danny was really good tonight, obviously he gives up the two in the first ... and then he settles down and gives us a solid seven. (He) gives our offense a chance, (but) really we just didn't do anything."
With the Cubs up 2-0, the Marlins threatened in the second but came up empty.
Marcell Ozuna doubled to lead off the inning and J.T. Realmuto followed with a walk. Derek Dietrich grounded into a double play and Tyler Moore flied to left to end the inning.
Jason Heyward nearly added a run in the Cubs' fourth with a long drive to right, but it was caught by Stanton on the warning track. The next batter, Almora, followed with a shot with more distance. His two-out solo home run landed in the left field bleachers to give the Cubs a 3-0 lead. It was his third homer of the season.
NOTES: The Marlins arrived in Chicago on the heels of an 8-2 homestand, tied for second best in franchise history. ... Miami RHP Edinson Volquez was named NL Player of the Week for May 29-June 4 following a 2-0 week that included last Saturday's no-hitter against Arizona. ... The Marlins send LHP Jeff Locke (0-0, 1.59 ERA) against Chicago RHP Jake Arrieta (5-4, 4.60 ERA) on Tuesday. ... The Cubs placed RHP Wade Davis on the paternity list and recalled RHP Dylan Floro from Triple-A Iowa. ... The Cubs' 7-6 victory over the Cardinals on Sunday featured a two-decade gap between stars as 22-year-old OF Ian Happ had a multi-homer game while RHP Koji Uehara, 42, earned his second save of the season. ... Chicago LHP Brett Anderson, on the disabled list since May 7 with low back strain, was scheduled to throw a three-inning simulated game on Monday as part of his rehabilitation. He does not have a scheduled return date.