"That was nice, get a little shot in the arm from J.B. there," Marlins manager Don Mattingly said. "I didn't really expect four [hits]. We liked what we saw in Spring Training, and the speed on the bases. It was nice to see. Good start from him."
The four hits for Shuck tied a franchise record for most hits in a Marlins debut. It's been done four times, most recently by Emilio Bonifacio on April 6, 2009. Looking for more of an experienced presence off the bench, Shuck had his contract selected from Triple-A New Orleans on Friday, with rookie Braxton Lee being optioned to get more regular playing time.
"I just came into camp trying to prove I could play up here," Shuck said. "In the beginning of the year, they wanted to go in a different direction. I didn't let it bother me. It's part of the game. I just went down and got my work in and just hoped I'd be ready if I got a chance."
Another Miami J.B. -- Justin Bour -- added a two-run homer as the Marlins bounced back from being swept in three games by the Mets to take the series opener. Dillon Peters allowed two runs over six innings to collect the win.
The Marlins capitalized on some breaks. In the fifth inning, they were involved in a rare situation, scoring three runs on Starlin Castro's sacrifice fly to right field. With Peters on third, right fielder Gregory Polanco threw home, the toss off line and on the first-base side. Pirates catcher Elias Diaz collected the ball and tried to throw Miguel Rojas out at second, but his throw sailed into center field and kept rolling. Three runners scored on the throwing error.
"Everybody gets fired up," Peters said. "There's a lot of good energy in the dugout after that. Everybody flies out there on defense after that."
According to Elias, the last time three runs scored in a similar situation was on July 7, 2000, when the Montreal Expos faced the Blue Jays. Montreal's Orlando Cabrera lifted a fly ball to the outfield and, after some misplays, three runners scored.
Shuck saw his first big league action since being with the White Sox in 2016. In his first at-bat, he tripled to right and scored on a wild pitch. His previous career high for hits in a game was three.
SOUND SMART With his single to left in the sixth inning, Lewis Brinson snapped an 0-for-26 slump that spanned seven games. The hit was the rookie's first since April 2 against the Red Sox.
YOU GOTTA SEE THIS Moving the runners up a base was the intention when Chad Wallach dropped a sacrifice bunt in the sixth inning. A botched assignment by the Pirates and some heads-up baserunning by Shuck stole a run for Miami. Shuck was on second and Brinson was on first when Wallach placed his bunt perfectly along the first-base line. Pitcher Kyle Crick went to field the ball, but it was handled by Diaz, the catcher, who threw Wallach out at first. Seeing no one -- it should have been Crick -- covering home, Shuck scored Miami's fifth run.
"Chad got a great bunt down," Shuck said. "I knew I was going to be able to get to third, and I happened to see the pitcher and catcher both kind of came out the same time, and they kept kind of going towards first, so I just decided to keep going."
HE SAID IT "He was really close to breaking camp with us, and may have broken camp, if things didn't fall wrong. We had some injuries, roster issues. So it really ended up kicking him out, at least from the discussion of the last guy." -- Mattingly, on Shuck almost making the Opening Day roster
UP NEXT The Marlins and Pirates play the second of three games on Saturday at 7:10 p.m. ET at Marlins Park. Trevor Richards (0-1, 8.64) seeks his first big league win. He goes up against Jameson Taillon (2-0, 1.26). Richards is making his third big league start, and has struck out seven and walked four in 8 1/3 innings.