ATLANTA -- Aaron Nola wanted to make up for his most recent start against the Braves, a no-decision last month in which he gave up five runs in 4 1/3 innings.
This time, Nola had full command of his fastball, and the deep Atlanta lineup couldn't solve him.
"That's a big win tonight for us, especially over here against these guys," Nola said. "They've been playing really good this past month to month and a half. Winning the first game of a series is always big."
Nola (7-2) allowed four hits, struck out eight and walked three in his second consecutive scoreless outing. He threw a career-high 117 pitches before Hector Neris finished for his 17th save in 19 chances, striking out the side.
The second-place Phillies, winners of six of eight, trimmed the Braves' NL East lead to 4 1/2 games in front of the seventh sellout at SunTrust Park this season. Atlanta, shut out for just the second time this season, dropped two in a row for the first time since June 5-6, a span of 24 games.
It marked the sixth time this year that the Braves, whose 56 homers in June set a franchise high for a calendar month, were held to four or fewer hits.
"(Nola) didn't throw many heaters and when he did throw one it was perfectly placed in a spot where he was setting up his off-speed," Braves All-Star first baseman Freddie Freeman said. "Sometimes good pitchers shut down good offenses."
Philadelphia went ahead to stay in the fourth. With two out and runners on first and second, Bruce doubled to right to give him 22 RBI in 23 games with the Phillies.
Keuchel (1-2) allowed five hits in seven innings in his third start with the Braves.
"One pitch got me tonight, but I was able to get through seven," Keuchel said. "Seven's really the benchmark for me. I don't really feel whole unless it's seven-plus, so that's what I strive for every time out."
But it wasn't good enough against Nola, who has been dominant of late.
The ace right-hander, who was still hitting 95 mph on the radar gun in the eighth, has a 0.39 ERA over his last three starts. He is 9-3 with a 2.26 ERA in 15 career starts versus Atlanta.
"He proved that he could go deeper into the game," Philadelphia manager Gabe Kapler said. "He proved that his body was bouncing back for him, that he could handle the volume and that he was staying in his delivery. He ended it just the way an ace does."
Phillies: C J.T. Realmuto went 1 for 3 and scored on Bruce's double after he tested his left hamstring by running the bases before the game. He left Sunday's win at Miami in the sixth inning.
Braves: RHP Anthony Swarzak, on the 10-day injured list with shoulder inflammation, underwent an MRI that showed no structural damage. Manager Brian Snitker said Swarzak appears on schedule to return July 12 when Atlanta begins a three-game series at San Diego. ... CF Ender Inciarte has started a rehab assignment and will need a couple weeks before he's ready to return from a lumbar strain.
Kapler is grieving the loss of Los Angeles Angels pitcher Tyler Skaggs, who died Monday at 27. Kapler and Skaggs, both California natives, were part of a group of players who worked out at Pepperdine University in the winters of 2007 and '08.
"Tyler Skaggs was a friend of mine, somebody I worked out with for several offseasons," Kapler said. "It is a really sad time for baseball. We lost someone who's honest, open, caring, humble and hard-working. He was all those things. Our thoughts and condolences go out to him and the Angels family. It's a big loss."
Phillies: RHP Nick Pivetta (4-2, 5.63 ERA) has a 6.35 ERA in two starts against Atlanta this year.
More AP MLB: https://apnews.com/MLB and https://twitter.com/AP-Sports
Untold tales of Cal Ripken Jr., the Iron Man who saved baseball
Cal Ripken Jr. brought baseball back after the strike with his record-breaking run in 1995. Here are some stories of the summer of 2,131 you might not have heard.
Viewers guide: The night Cal Ripken Jr. became baseball's Iron Man
The sport was still stinging from the 1994 strike, but all was forgotten when the Orioles shortstop broke Lou Gehrig's unthinkable record for consecutive games played.
Tim Kurkjian's baseball fix: Adrian Beltre was so confident, he didn't wear a cup
Playing third base in the majors and not wearing a cup seems like a bad idea. But Adrian Beltre, a future Hall of Famer, believed his defense was good enough to save him.
Second-Chance World Series, Round 2: Which clubs advance to our Elite 8?
Are the 1993 Phillies making the most of their second chance? Are the 2001 Mariners unstoppable? The field narrows in our runoff sim of MLB's best non-champs.
Stories to remember Adrian Beltre by on his birthday
Tim Kurkjian celebrates Adrian Beltre's birthday by sharing some of his favorite stories about the third baseman.
Is it safe to start the MLB season in May?
Jeff Passan gives an inside look into the MLB's decision to potentially start the season in May and the health concerns that come with it.