The GreenJackets tied the game in the ninth and won 3-2 in the 12th, earning a sweep of the Drive at Lake Olmstead Stadium.
GreenJackets infielder Alberto Robles singled home Ben Turner in the 12th. Turner reached on a walk and advanced to second on a hit-by-pitch.
Augusta (32-20) tied the game in the bottom of the ninth when Shawn Payne grounded out to score one, and the tying run scored on the play during a rundown.
Haley, a sixth-round pick in 2012 out of Fresno State, threw four perfect innings to begin the game and gave up just one hit on the night.
He induced nine fly balls to five ground balls, avoiding hard contact with a low-90s fastball commanded to both sides of the plate. He paired it with a tight breaking ball to induce five swinging strikes.
Augusta first baseman Joey Rapp broke up the perfect game with a double to deep center field to lead off the fifth inning. He never moved off the base, as the GreenJackets stranded two baserunners in the inning. They stranded two more in the eighth.
Greenville (23-27) scored its first run in the fifth on a sacrifice fly RBI by Boss Moanaroa.
The Drive added a second run in the eighth on an RBI single by Dreily Guerrero. They left 11 runners on base in the game.
GreenJackets starter Chris Stratton allowed two runs on eight hits in seven innings, striking out three.