McCarthy tossed seven shutout innings and then watched the D-backs hang on for a 4-3 win.
The win was the third in a row for the D-backs, which matches their longest winning streak of the season, and they are now 2-0 on this nine-game road trip. Though they still have the worst record in baseball, they are trending in the right direction.
"We've been on the other kind of roll," D-backs manager Kirk Gibson said. "We know we can play better, we're starting to play better. We've got to have a good trip here and then go home and continue it."
McCarthy (1-5) was on top of his game, mixing pitches and keeping the Padres off balance throughout his seven innings. He allowed just three hits and walked one while striking out seven.
"He was good he was hitting his spots," Arizona catcher Miguel Montero said. "He was locating his fastball, he was locating his breaking ball and expanding too. He got quick outs, that's a good thing. He was throwing good first pitch with good location and he got them to swing the bat and get quick outs."
While the offense was shut out in McCarthy's last start, this time it gave him more than enough support while hanging a loss on former teammate, Ian Kennedy (2-4)
Kennedy's batterymate when he was with the D-backs, Montero, got things started with a home run to lead off the second.
"I've had some success against Miggy the last time I faced him," Kennedy said. "I didn't make very good pitches to him [this time]. He looked like the hitter I know."
One out later Chris Owings and Alfredo Marte hit back-to-back doubles to put Arizona up 2-0.
Owings was right in the middle of the scoring action again in the fifth when his single scored Montero to give the D-backs a 3-0 lead.
That spelled the end of the night for Kennedy, who allowed three runs on 11 hits over five innings.
"It could have been better," he said. "I was falling being guys and felt like it was a constant battle the whole game."
The D-backs added to their lead in the seventh when Marte's single scored Aaron Hill.
That was more than enough for McCarthy, who allowed just two runners to get into scoring position all night long.
"You saw a live fastball with some movement and some sink and a good breaking ball at times. He's got a good arm," Padres manager Bud Black said of McCarthy.
The D-backs pitching staff as a whole have been on a roll of late, compiling 24 scoreless innings, before the Padres' ninth-inning rally.
"It's just nice to be contributing," McCarthy said. "I know for me and for Bronson [Arroyo], it's a relief when you're not the goat every time out. We're back to a place where we're throwing well and getting consistent outings from the starting pitching and we're kind of settled back into that part of the season. We're not winning or losing games anymore in the first or second inning because we've given up so many. Now, it's just being able to battle for nine innings and I think we're doing a better job of that."
Though they had the game in hand for eight innings, things got a little dicey in the ninth.
Reliever J.J. Putz allowed a one out single and then an RBI double to Yasmani Grandal to cut the lead to 4-1 and Gibson then brought in closer Addison Reed.
Jedd Gyorko greeted Reed with a home run to left that cut the lead to 4-3 and one out later after Cameron Maybin doubled and pinch-hitter Will Venable walked, the D-backs were in a tough spot.
Reed, though, was able to get Xavier Nady to fly out to right to end the game.