The Pirates prospect faced the minimum through 8 1/3 frames before yielding a home run to Brevard County's Sean McCraw. Despite the blow, McPherson finished off the first nine-inning complete in team history as the Marauders beat the Manatees, 4-1.
"I pitched off the fastball," McPherson said. "I used the curve more on the second time through the lineup. it was a pretty effective pitch for me tonight. I mixed in the changeup later to improve the fastball.
"My catcher, Ramon Cabrera, and I were on the same page all night."
McPherson, the Pirates' 14th-round pick in the 2007 Draft, is no stranger to no-hitters. He pitched seven hitless frames for Class A West Virginia on May 25, 2010 before reaching his pitch count.
"In that game last year, I had a lot of strikeouts, so I was throwing a lot of pitches," he said. "Tonight, I got a lot of quick outs early in the count, so I was able to go longer."
After McPherson retired the first nine Manatees in order, Scooter Gennett led off the fourth with a grounder to Marauders first baseman Aaron Baker. As McPherson hustled to cover the bag, he let Baker's toss tip off his glove for an error.
"It was a mental mistake," he said. "I was trying to do too many things at once and just didn't make the play."
After Kentrail Davis struck out, Khristopher Davis lined into a double play as McPherson speared the comebacker and caught Gennett off first.
McPherson went back to work and faced the minimum 24 batters through the eighth, in which he struck out the side.
Designated hitter Shawn Zarraga opened the ninth with a groundout to shortstop Benji Gonzalez, bringing McCraw to the plate.
Though not known as a power hitter -- he entered the game with 13 homers in 370 Minor League games and only two since the start of the 2008 season -- McCraw deposited a curveball just beyond the right-field fence.
"I went back to the curve a second time," McPherson said, "and he hit it pretty hard."
Despite a high pitch count -- he had not pitched more than seven innings this season -- McPherson stayed in the game and sandwiched two groundouts around his only walk of the night for the first nine-inning complete game in Bradenton's two-year history.
McPherson finished with six strikeouts, improved to 4-1 in 11 starts and lowered his ERA to 2.93.
The Marauders, who broke a five-game losing streak, scored single runs in the fourth, fifth, sixth and eighth innings. Elevys Gonzalez went 2-for-3 with a double and three RBIs.
Brevard County had a five-game winning streak snapped and has lost five consecutive road games. Starter Maverick Lasker fell to 1-6 after giving up three runs on five hits over 5 1/3 innings. He struck out three and walked one.