The Grizzlies jumped on the board in the first inning against Otters starter Brandyn Sittinger.
Sittinger walked two of the first three batters he faced, and then Brent Sakurai reached on a bunt single to load the bases with no outs.
A fielder’s choice by Shawon Dunston Jr. scored Connor Owings, giving Gateway a 1-0 lead.
Sittinger was able to settle in to limit the damage to one run.
The Grizzlies would add their second run of the game in the top of the third inning on a solo home run by Dustin Woodcock, the second home run he has hit against the Otters this season.
Barrett retired the first six batters he faced in order, but it appeared the Otters would change the momentum of the game in their favor in the bottom of the third.
Rob Calabrese led off with a single, Tanner Wetrich singled with one out, and David Cronin walked to load the bases.
Barrett got the next two batters out to get out of the jam and hold onto the Grizzlies’ 2-0 lead.
Sittinger did find his rhythm as the game went along but exited the game after six innings. He allowed two runs – one earned – with seven strikeouts, but Sittinger was given the hard-luck loss.
Michael Gizzi started the seventh inning for the Otters and gave up a solo homer to Connor Owings with one out, extending the Grizzlies’ lead to three.
Barrett threw seven shutout innings, allowing no runs on three hits while tossing eight strikeouts. He would earn the win.
Grant Black came on in the eighth and retired the Otters in order, setting up a save situation for Geoff Bramblett in the ninth.
In the bottom of the ninth with one out, Elijah MacNamee worked a walk and would advance to third on a single by Taylor Lane.
Jack Meggs, representing the tying run at the plate, grounded into a 6-4-3 double play to end the game, giving Bramblett his 12th save of the season.