It was the first blown save this season for Gregg (0-1), who came in to get the final out of the eighth inning but struggled in the ninth.
Gregg walked Chris Duffy with one out and Weeks hit a line drive that sailed over the head of left fielder Alfonso Soriano for an RBI double that tied it at 3.
Weeks then went to third on a wild pitch by Gregg, and Corey Hart walked to bring up Braun. He hit a hard grounder to shortstop Ryan Theriot, who threw home but not in time to get the sliding Weeks.
Carlos Villanueva (1-0) worked a hitless inning for the win.
The Cubs appeared to be on their way to victory after backup catcher Koyie Hill hit a go-ahead, two-run homer in the sixth and starter Rich Harden struck out 10 in six innings.
The late rally helped Milwaukee shake off a rough start to the season. The Brewers didn't look much like last year's NL wild card winners as they dropped two of three games in their season-opening series at San Francisco.
After an evening game Thursday, the Brewers finally arrived back in Milwaukee early Friday morning and faced a quick turnaround to play their division rivals in the afternoon.
Braden Looper was fairly sharp in his first start with the Brewers, giving up only one run in five innings despite issuing four walks. Looper, who signed with Milwaukee as a free agent and missed much of spring training because of a tight left oblique muscle, gave up five hits while striking out four.
Milwaukee took a quick 2-0 lead with an RBI single by Braun in the first inning and a solo homer by Hart in the third. Milton Bradley then led off the fourth with a home run deep onto a walkway in right-center field for his first hit with the Cubs.
But after retiring the first two batters he faced in the sixth inning, Brewers reliever Seth McClung watched Hill smack a 2-1 pitch into the Brewers' bullpen in left-center.
Weeks then helped McClung out of a jam in the seventh, snagging a sharply hit grounder and throwing to first with runners on first and second and two outs.