Javy Guerra cleaned up a ninth-inning mess created by Barraclough, getting Yadier Molina to hit into a double play to end the Marlins' 2-1 victory over the St. Louis Cardinals.
After Wei-Yin Chen (4-8) pitched 5 2/3 innings of one-hit ball, Miami led 2-0 going into the ninth and handed the game off to Barraclough.
Paul DeJong and Harrison Bader opened the inning with hard-hit singles, then Yairo Munoz walked. Pinch-hitter Kolten Wong struck out looking, but Matt Carpenter drew a bases-loaded walk to make it 2-1 and end Barraclough's night.
Guerra got Molina, a career .309 hitter with the bases loaded, to bounce into a double play for his first save since Sept. 27, 2014 while with the Chicago White Sox.
Barraclough had blown his last three save chances, allowing 10 runs in 2 1/3 innings.
Starlin Castro had two hits, including his ninth home run for the Marlins, who returned home after a six-game winless road trip.
Former Miami All-Star Marcell Ozuna returned for his first game at Marlins Park after being traded to St. Louis in the offseason and went 3 for 4 tying his season-high with hits in a game.
Luke Weaver (6-10) allowed two runs and seven hits in six innings for St. Louis.
Derek Dietrich doubled to begin the game for the Marlins and scored on a check-swing hit by Brian Anderson.
Castro's home run to left in the fourth gave Miami a 2-0 lead.
With one on and one out in the seventh, Munoz grinded out a 14-pitch at-bat, but Tayron Guerrero prevailed with a groundout. Pinch-hitter Greg Garcia struck out to end the inning.
Ozuna beat out an infield hit in the eighth, giving Jedd Gyorko an at-bat with runners on first and second with two outs. Drew Steckenrider was able to get out of the jam as Gyorko flew out to deep center.
Cardinals RHP Miles Mikolas (11-3, 2.75 ERA) is scheduled to start the second game of the series as he'll face RHP Pablo Lopez (2-2, 4.67) who allowed one run in six innings his last start, a no-decision at Philadelphia.