It was Florida's first win since a 5-2 victory at Arizona on May 31.
"A lot of things feel long when the offense is struggling and you're part of the offense," Morrison said. "Whether it's the games themselves, the losing streak, the lack of driving in runs. All of it seems long. It's finally good to break through a little bit."
Florida's 13 hits were its highest total since it had a season-high 14 against the Los Angeles Dodgers on May 28.
"I think they're more relaxed out there," Marlins manager Edwin Rodriguez said. "There were still a lot of runners in scoring position. Little by little, I'll take tonight's game."
"It's frustrating," Montero said. "We hit the ball pretty well."
Morrison connected against Joe Saunders in the first inning, hitting a drive to right on a 2-2 pitch for his eighth homer of the season.
Stanton's 15th homer in the sixth inning made it 4-0 and Buck hit Saunders' next pitch over the wall in right. It was the second time this season the Marlins have hit back-to-back homers.
Anibal Sanchez (6-1) allowed three runs and five hits in 6 2/3 innings for the Marlins. The right-hander is 5-0 with a 2.31 ERA in his last seven starts.
"A big win today," Sanchez said. "It was special for the team. I know we needed to cut out the losing streak. It's a new step for the team. We need to continue to win."
Arizona chased Sanchez during its four-run seventh inning. Stephen Drew singled in Justin Upton before Montero went deep. Mike Dunn then came in and allowed a homer to pinch-hitter Nady, cutting it to 5-4.
"Some people probably think I'm crazy, but I think we're coming out of it with our bats," Diamondbacks manager Kirk Gibson said.
Buck added an RBI single in the bottom half to get the Marlins an insurance run, and Steve Cishek worked the ninth for his first career save, benefiting from two good defensive plays.
"I was fine until I left a fastball down the middle that was scorched and then a slider down the middle and that was crushed," Cishek said. "Luckily we have awesome defenders behind us and I think a third of the save should go to Bonifacio and Stanton for saving my butt."
Saunders (3-6) gave up five runs and 10 hits in six innings.
"He made some mistakes, they pounded him, it's going to happen from time to time," Gibson said.
Cishek set a club record for most consecutive scoreless innings to start a career with 12 2/3. ... Gaby Sanchez and Buck hit back-to-back home runs on May 13 at Washington. ... Marlins shortstop Hanley Ramirez (back) went 2-for-3 with an RBI as the designated hitter in a rehabilitation appearance with Class A Jupiter on Friday night. ... Diamondbacks right-hander Bryan Shaw made his major league debut in the eighth.