A night earlier, the Marlins blanked the Pirates, 2-0. But it was a different story on Saturday night, as Miami allowed as many as seven runs for the first time since losing 7-1 to the Braves on July 8.
McKenry had a career-high four hits, and five Pirates had at least two hits.
Boosted by ample run support, Charlie Morton (3-2) collected the win, giving up four runs (three earned) on nine hits in five innings. Tom Koehler (2-6) allowed five runs in five innings while taking the loss.
"I'd love to sit here and say we're going to get seven innings, eight innings out of every guy, but that's not possible," Marlins manager Mike Redmond said. "It doesn't happen. Tonight was one of those nights where Tom was grinding, right from the start. They jumped on him early."
Both teams certainly had their chances. The Pirates slapped out 14 hits and left 10 on base, compared to Miami's 11 hits with nine stranded.
"Offensively, I was happy with the way we were able to bounce back," Redmond said. "We really kept ourselves in the game and gave ourselves a chance. We were playing from behind the whole game. But I liked the way we battled. A lot of good at-bats out there."
A highlight for the Marlins was Giancarlo Stanton and Logan Morrison, who each went 3-for-4.
"I really enjoyed that," Redmond said. "If we get those two guys going together, it's going to be fun. Having LoMo behind Stanton, swinging the bat the way we know they are capable of, those guys can do some damage in there. That will really help our offense."
Although the pitching struggled, Miami shortstop Adeiny Hechavarria turned in a spectacular game in the field. He made a sprawling diving catch to rob Gaby Sanchez of a hit. And in the ninth inning, he made a sliding stop on Jose Tabata's sharp grounder for another highlight-reel play.
"That diving play he made, and that play up the middle, he's a special guy," Redmond said. "I love watching him play. You know on any particular night that he's going to come up with a web gem.
"I just wish more people knew about him. He deserves a lot more credit than he gets."
It took only one inning for an impressive Marlins streak to come to an end.
The Pirates scored three runs off Koehler in the first inning, snapping a string of six straight games in which Miami's starter didn't allow more than two earned runs.
The franchise record for most consecutive starts allowing two or fewer earned runs is seven, set in June 2002.
Five pitches into the game, the Marlins were down by a run. Starling Marte and Walker each doubled to open the scoring. Jones dropped an RBI double to short left field with two outs, and McKenry added a run-scoring single.
"Putting their starter on the ropes, getting his pitch count up, that was big," Neil Walker said. "The middle innings got a little hairy there, but we always feel like when we get a lead for this team and we're getting into the fifth, sixth and seventh inning, that we've got a pretty good chance of closing it down."
Miami countered in the first with one run on Donovan Solano's RBI double. Christian Yelich, who singled, scored.
In the third inning, the Pirates tacked on two more runs to build a 5-1 lead. Jones and McKenry each collected RBI singles.
"It's disappointing, we'd been on such a great run, starting pitching-wise, and pitching-wise in general," Koehler said. "You never want to go out there and have the team fall behind in that fashion.
"You kind of make your own luck. You fall behind a couple of guys, and they're looking for a fastball or looking for a certain pitch, that kind of creates the bad luck."
But the Marlins responded with three runs in the bottom of the third, closing their deficit to one. The Pirates made two errors in the inning, accounting for one unearned run. Stanton delivered a run-scoring double, while Morrison had an RBI single and Placido Polanco chipped in with a two-out single.
Down 5-4 in the fifth inning, the Marlins had a chance after Stanton and Morrison led off with singles. With no outs, Solano wasn't bunting and he tapped the first pitch to shortstop for a double play. Polanco struck out to end the threat.
With the way Solano has been swinging the bat since taking over at second base again after Derek Dietrich was optioned to Double-A, Redmond wanted him to swing away.
"We could bunt," Redmond said. "But when you bunt, you're playing for one run. After a guy has good at-bats, I want him to swing the bat. I'm thinking he's going to put that ball in the gap, and we have a chance to score a couple of runs, especially as we get lower down in the order.
"It's one of those things where he's just getting back and getting into the flow of playing. He needs to swing the bat."