Trailing 3-2, the Pirates loaded the bases with two outs on a single by NL hits leader Adam Frazier and walks to Bryan Reynolds and Gregory Polanco. Stallings then doubled to left against Dylan Floro (2-3), sending the Marlins to their season-high sixth consecutive loss.
Reynolds also homered for the Pirates, who stopped a three-game slide. Rookie Ke’Bryan Hayes, fresh off the injured list, had two hits.
Kyle Crick (1-0) pitched a scoreless eighth for the win, and Richard Rodriguez worked around a two-out single in the ninth for his seventh save.
Marlins starter Elieser Hernandez was activated from the IL after missing two months with a strained right biceps, and then he got hurt again.
Hernandez strained his right quadriceps while running the bases in the sixth inning when the Marlins scored twice to take a 3-1 lead. The right-hander limped home while scoring from third on Jesus Aguilar’s soft groundout, and then collapsed once he crossed home plate.
Hernandez allowed three hits in five innings. He struck out six and walked none.
The Pirates got one back in the bottom of the sixth. Hayes tripled with one out and scored when shortstop Jazz Chisholm Jr. mishandled Reynolds’ grounder.
Pirates starter Tyler Anderson allowed three runs and five hits in 5 1/3 innings. He struck out four and walked none.
Jon Berti had two hits for the Marlins.
Hayes had been out since spraining his left wrist in the second game of the season. Last year, the son of longtime major league third baseman Charlie Hayes hit .376 with five home runs in 24 games.
“He’s an important part of what we’re doing,” manager Derek Shelton said. “So, it’s nice to have him back in the lineup.”
MARTE RETURNS, TOO
Marlins center fielder Starling Marte went 1 for 4 with a double in his first appearance as a visiting player in Pittsburgh. He played for the Pirates from 2012-19 before being traded to Arizona.
A video tribute was played on the scoreboard before he batted in the first inning and Marte received a warm ovation. He tipped his cap and patted his heart.
The Marlins designated infielder Luis Marte for assignment to clear spots on the 25- and 40-man rosters for the activation of Hernandez. Marte played in one game, making his major league debut Tuesday and going 0 for 2 against Toronto.
The Pirates reinstated right-hander JT Brubaker from the bereavement list and optioned right-hander Wil Crowe to Triple-A Indianapolis.
Brubaker will be added to the active roster once he clears the COVID-19 intake process. Crowe was 0-4 with a 7.26 ERA in eight games.
Marlins: SS Miguel Rojas (dislocated left index finger) can now throw but is not yet able to catch. … OF Lewis Brinson (sprained left middle finger) was activated from the 10-day injured list and optioned to Triple-A Jacksonville. He hit .224 with two home runs in 24 games.
Pirates: RHP Jose Soriano (right elbow discomfort) has had his rebab assignment with Class-A Bradenton paused. He is returning from Tommy John surgery. … Indianapolis CF Travis Swaggerty, the Pirates’ first-round draft pick in 2018, underwent season-ending surgery on his dislocated right shoulder.
Marlins rookie Cody Poteet (2-1, 2.95 ERA) will start against fellow right-hander Mitch Keller (3-6, 6.54 ERA) on Friday night. Poteet will be making his fifth career start. Keller stopped a three-start losing streak in his last outing when he pitched five shutout innings against Colorado.