That plus an error by Jason Kubel led to a five-run fourth inning for the Pirates as they beat the D-backs, 6-5, on a rare chilly night at Chase Field.
The loss was the second in a row for the D-backs, who will try to avoid a sweep in Wednesday afternoon's series finale.
McCarthy (0-1) was tagged for six runs (four earned) on 10 hits in 6 2/3 innings.
"That's as well as I've thrown a baseball in my professional career, without a doubt, and I absolutely felt like I was able to do everything I wanted to," McCarthy said. "I just think we got into a routine there and we weren't able to change gears fast enough. Too many pitches that with two strikes we weren't changing things up enough. I've got to be smart out there and shake and mix things up more the way we did the fifth through the seventh inning than we did the first few."
It was a tale of two outings for McCarthy, because after the five-run fourth, he was able to shut the Pirates down.
"After he gave up the five runs, we talked about some things," D-backs manager Kirk Gibson said. "He used all of his pitches better, threw the ball much better. He got [ticked] off and started using all four of his pitches. Just much more effective, that's what he has to do."
McCarthy only allowed one more hit the rest of the way before leaving with two outs in the seventh after throwing 115 pitches.
"If we could do that game over again, it would be entirely different," McCarthy said referring to himself and catcher Miguel Montero. "It's just one of those where sometimes you're just a little slow to react there. I was executing a lot of pitches and they were putting things in holes and some things, so you don't want to overreact too much, but if we could do it again and I think next time out, we'll see it much sooner if it's time to change and go into a different lane here to get results."
After the Pirates scored a run in the first, the D-backs seemed like they were going to take control of the game with a four-run bottom of the first that include a two-run double by Montero and a two-run homer by Kubel.
The game, though, turned in the fourth, which started off poorly for the D-backs when Pedro Alvarez ripped a line drive to right that bounced off Kubel's glove, allowing Alvarez to reach base.
Starling Marte delivered a two-run double later in the inning, while Neil Walker had a go-ahead two-run single and Garrett Jones chipped in an RBI single.
"It definitely felt good more than anything else, to help the team take the lead back," Walker said. "That was a big moment in the game."
The Marte and Jones hits were especially frustrating for McCarthy because they came on 0-2 pitches.
"That's where it gets really bad," McCarthy said. "The way I throw strikes, there are so many guys running 0-2, 1-2 counts, and if those turn into hits and they're not guaranteed outs -- or at least a high percentage of strikeouts -- it just kind of invalidates the pitches I threw before. They just become a waste of time. A lot of it is just me trying to not throw such a good strike with two strikes and expanding the zone and wasting something."
McCarthy has allowed 12 runs (10 earned) in 11 2/3 innings over his two starts. Not the way he wanted to begin his D-backs tenure after signing a two-year contract this winter.
"A lot of these hitters are new to me, so I'm kind of feeling my way through and it's been made pretty well clear the first two games, we're throwing a lot of strikes doing things and the results aren't there," he said. "It's because we're not attacking it the right way. There is nothing more frustrating than this. This is as bad as it gets."
Pirates starter James McDonald allowed just one hit after struggling through the first and was removed following a leadoff walk in the sixth.
The D-backs did manage one run in the seventh, but they squandered scoring opportunities throughout the night, going 2-for-11 with runners in scoring position.