Taillon (5-2) allowed four hits and four relievers finished off the six-hitter. The right-hander is 3-1 in five starts since returning from surgery for testicular cancer.
"I'd rather go seven innings with four strikeouts," Taillon said. "A lot of those strikeouts were deep counts. I'm not a super high strikeout guy. Nine is a cool number."
Taillon needed 102 pitches to get through five innings.
"Very gritty," Pirates manager Clint Hurdle said. "He didn't have his best stuff. He battled."
McCutchen ripped his 15th homer to left in the sixth, one pitch after a high-and-tight fastball from Mark Leiter Jr. (1-1) knocked him down. He connected off Ricardo Pinto in the eighth, sending a drive off the facing of the upper deck in left.
"He hit the first one good and the second one more good," Hurdle said. "Elite players when they get to that level and stay in rare air, it's fun to watch."
Leiter gave up two runs and four hits in 5 1/3 innings.
"I was just trying to keep the team in the game," Leiter said. "I made a few mistakes, but overall I think I did OK. I was trying to force contact as much as I could."
The Pirates jumped in front on John Jaso's sacrifice fly with the bases loaded in the third. Jaso hit a shallow fly, but center fielder Odubel Herrera's throw to the plate was weak and offline. Josh Harrison was caught trying to advance to third on the play, ending the inning.
The Phillies had a runner on third with less than two outs three times, but couldn't score. After Freddy Galvis doubled and stole third in the first, Taillon struck out Aaron Altherr and retired Maikel Franco on a grounder.
Taillon fanned Andrew Knapp and Leiter with runners on first and third to end the fourth.
Juan Nicasio relieved Tony Watson with the bases loaded and one out in the seventh and got Altherr to ground into a double play .
A 22-minute rain delay held things up in the bottom of the eighth. Felipe Rivero pitched out of trouble in the ninth for his fourth save in four tries.
"The inconsistency in the middle of our lineup is one of our biggest issues," Phillies manager Pete Mackanin said.
FUN IN PHILLY
McCutchen is 20 for 53 (.377) with seven homers and 12 RBI in his last 14 games in Philadelphia. He has 14 career multihomer games.
Pirates: OF Starling Marte went 1 for 6 in two rehab games at Single-A Bradenton and will continue preparing for his reinstatement at Triple-A Indianapolis. Marte is eligible to return July 18 after serving an 80-game suspension for a PED violation.
Phillies: RHP Jerad Eickhoff was slated to make a rehab start at Double-A Reading. He has been sidelined by an upper back strain since June 20.
RHP Gerrit Cole (6-7, 4.51 ERA) starts for the Pirates while RHP Ben Lively (1-3, 3.72) goes for the Phillies on Wednesday night. Cole is 3-3 vs. Philadelphia in six career starts. Lively has never faced Pittsburgh.