SAN FRANCISCO -- Jake Peavy made sure his 35th birthday was a success.
Peavy faced the minimum 21 batters through seven innings, Denard Span drove in two runs with three hits and the San Francisco Giants beat the Atlanta Braves 4-0 on Tuesday night.
Four relievers finished the combined one-hitter.
Peavy (2-5) allowed one hit with no walks and three strikeouts. He was lifted for a pinch-hitter in the Giants' three-run eighth inning after throwing only 77 pitches - 57 for strikes.
"If he hadn't turned 35 today I might have left him out there," Giants manager Bruce Bochy said with a laugh.
The seven innings matched Peavy's longest outing of the season. The right-hander lowered his ERA from 7.26 to 6.34.
Peavy retired the first 12 Atlanta hitters before giving up Tyler Flowers' single to left to open the fifth. Kelly Johnson hit into a double play to end the inning.
"He was just on," Giants catcher Buster Posey said. "He got in a good groove there."
Peavy said he could use all his pitches because he established command of his fastball, unlike in some of his rough starts this season.
"It was a good night to be able to use everything," he said.
Matt Wisler (2-5) allowed only one hit through five scoreless innings before Peavy hit a two-out single up the middle in the sixth and scored on Span's triple to center field.
Peavy was running from first - on his own - on Span's hit. He said he heard the Braves' bench tell first baseman Freddie Freeman to play behind him.
"I was just trying to make something happen," Peavy said. "... I was extremely happy he hit the ball where he hit it."
Brandon Crawford walked and moved to third on Gregor Blanco's double off Wisler in the eighth. Left-hander Hunter Cervenka issued an intentional walk to pinch-hitter Kelby Tomlinson, loading the bases. Matt Duffy's fly ball to right drove in Crawford before Span's single to right off Eric O'Flaherty drove in Blanco.
WISLER CAPS GOOD MONTH
Wisler gave up three runs, four hits and two walks in seven-plus innings. He did not allow more than three runs in any of his six starts in May.
"That's probably the best I've felt all year," he said. "I had good slider command today, throwing for strikes and balls when I needed to."
GRILLI TRADED
The Braves traded former closer Jason Grilli, 39, to the Toronto Blue Jays for minor league pitcher Sean Ratcliffe, an 18th-round draft pick in 2013 who was 2-2 with a 3.60 ERA in 22 games with Class A Vancouver last season. Ratcliffe will report to the Braves' extended spring training.
General manager John Coppolella said the move was not motivated by financial reasons. "We saved some but that wasn't the main reason for the trade," Coppolella said. "The main reason for the trade was to give opportunity for our young arms."
TRAINER'S ROOM
Giants: RHP Sergio Romo (strained flexor) had a "little setback," according to manager Bruce Bochy, and he will be shut down for three to five days. Romo had been hoping to come off the DL this week. Bochy said an MRI showed no structural damage. "He'll have to build it back up so it will take a little while," Bochy said. "We don't know how long at this point."
Braves: RHP Jim Johnson (right groin strain) is expected to come off the 15-day DL on Friday. Coppolella said RHP Shae Simmons, recovering from Tommy John surgery, is not far behind.