The reigning NL MVP became the first player to hit three home runs in a game at spacious Petco Park since it opened in 2004.
Braun hit a solo homer in the fourth and a two-run shot in the fifth. Both were off rookie Joe Wieland (0-4).
His third shot, to left, came on the first pitch he saw from Ernesto Frieri with two outs in the seventh.
Braun came up again with two on and two outs in the ninth and nearly equalled the major league record of four home runs in a game when he hit a triple that short-hopped the right-centre fence.
Randy Wolf (2-2) got the win after allowing three runs and nine hits in five innings.
PIRATES 9, BRAVES 3
ATLANTA (AP) — Pedro Alvarez and Yamaico Navarro each hit two-run homers, and Pittsburgh enjoyed a long-awaited offensive breakthrough in a win over Atlanta.
The Pirates, last in the major leagues with 58 runs in 22 games, almost doubled their previous season high of five runs. Neil Walker had three hits and drove in a run.
It took the Pirates 22 games this season to score more than five runs. That was the longest streak since the 1972 Milwaukee Brewers went a major league-record 31 games into the season without surpassing five runs, according STATS LLC. The last National League team with a longer streak was the 1919 Boston Braves, who went an NL-record 23 games into the season without topping five runs.
James McDonald (1-1) set a career high with 10 strikeouts as he improved to 3-0 in six career appearances against the Braves.
Navarro homered off Mike Minor (2-2) in the sixth.
PHILLIES 6, CUBS 4
PHILADELPHIA (AP) — Placido Polanco hit a tiebreaking, two-run double in the eighth inning to lift the Phillies over the Cubs.
Bryan LaHair hit a tying, two-run homer off Chad Qualls (1-0) in the eighth after Vance Worley threw seven impressive innings for Philadelphia.
But the Phillies answered in the bottom half. Scott Maine (0-1) hit pinch-hitter Juan Pierre with a one-out pitch and Jimmy Rollins singled off Rafael Dolis with two outs.
Polanco, who had just two RBIs in his first 71 at-bats, drove in two with a hard liner to the wall in left.
DIAMONDBACKS 9, MARLINS 5
MIAMI (AP) — Left-hander Patrick Corbin pitched 5 2-3 innings to win his major league debut, and Arizona beat the slumping Marlins.
The 22-year-old Corbin, who was called up from Double-A Mobile, struck out six and allowed three runs.
Cody Ransom and Justin Upton hit two-run homers, and Willie Bloomquist had a two-run double for Arizona.
Mark Buehrle (1-4) endured his worst outing this season. The left-hander lasted only five innings and allowed seven runs — four earned — and eight hits.
ASTROS 4, METS 3
HOUSTON (AP) — Matt Downs hit a two-run homer and Jed Lowrie had the go-ahead single in the eighth inning to propel the Houston Astros to a 4-3 win over the New York Mets on Monday night.
The game was tied 3-all when Jordan Schafer reached on an infield single to start the eighth. He stole second with one out and scored on the hit by Lowrie, which reliever Manny Acosta (0-2) deflected into the outfield.
The Mets tied it by scoring three times in the seventh, including a two-run single by rookie Kirk Nieuwenhuis.
Fernando Rodriguez (1-3) got the last out of the eighth and Brett Myers pitched a perfect ninth for his fifth save.
ROCKIES 6, DODGERS 2
DENVER (AP) — Juan Nicasio pitched six solid innings, Troy Tulowitzki hit a two-run double and the Rockies overcame Matt Kemp's latest homer, beating the Dodgers 6-2 in the first of 18 meetings this season between the NL West rivals.
Continuing his remarkable comeback from a broken neck sustained last August when he was hit in the head by a line drive against Washington, Nicasio (2-0) gave up two runs and nine hits.
Kemp hit his major league-leading 12th homer for Los Angeles, which owns the best record in the NL at 16-7.
The Rockies went in front with a three-run fourth off starter Aaron Harang (1-2), who went 5 2-3 innings and gave up five runs on six hits.