Atlanta's 10-game winning streak is its longest since the club won 15 in a row from April 15 to May 2, 2000. The Braves are 12-1 and off to their best start since they began the 1994 season 13-1.
Eric O'Flaherty (3-0) struck out two in a scoreless eighth.
Heyward's second homer, Upton's eighth and Uggla's third were solo shots off Kelvin Herrera (1-1). The Braves have outhomered opponents 25-7 and outscored them 68-25 for the best run differential in the majors.
Heyward hit the go-ahead shot before Upton and Uggla followed to make it 5-2.
Craig Kimbrel finished off the Royals in a non-save situation after an injury to Luis Avilan.
RANGERS 4, CUBS 2
CHICAGO (AP) — Derek Holland pitched seven shutout innings, Adrian Beltre hit a two-run homer and Craig Gentry made a diving catch for the final out to preserve Texas' interleague victory over Chicago on a 39-degree night at Wrigley Field.
Holland (1-1) at one point retired nine straight against the Cubs, who have lost three games in a row. The left-hander struck out six and allowed two hits.
Beltre's home run off reliever Shawn Camp gave the Rangers a 4-0 lead in the eighth. Chicago starter Travis Wood (1-1) gave up two runs and five hits in 7 1-3 innings.
The Cubs scored twice with two outs in the ninth, but Gentry made a diving grab on Darwin Barney's bases-loaded liner to give Joe Nathan his fifth save in five tries.
MARLINS 8, NATIONALS 2
MIAMI (AP) — Adeiny Hechavarria ended Miami's nine-game home run drought with a three-run shot against Washington.
A throwing error by Nationals third baseman Ryan Zimmerman — his fourth in five games — preceded the homer and led to four unearned runs.
The Marlins (3-11) began the game with the worst record in the majors but broke out of an offensive slump in the fourth inning with four runs, more than they had scored in all but one game.
Hechavarria sent the Marlins Park home run sculpture swinging into action for the first time this season and ended a homer drought that had tied the 20-year-old franchise record.
Justin Ruggiano had two hits and three RBIs, and Juan Pierre finished with three hits. Alex Sanabia (2-1) allowed two runs in six innings, and two relievers completed an eight-hitter.
Dan Haren (1-2) gave up seven runs, three earned, in 4 1-3 innings and lowered his ERA to 8.10.
The Nationals played without three regulars. Marlins slugger Giancarlo Stanton sat out for the fifth consecutive game because of a bruised left shoulder.
ROCKIES 8, METS 4, 1ST GAME
ROCKIES 9, METS 8, 10 INNINGS, 2ND GAME
DENVER (AP) — Jordan Pacheco singled home the winning run with two outs in the 10th inning and Colorado rallied from a six-run deficit to sweep a frigid doubleheader from New York.
In the opener, Carlos Gonzalez homered and Todd Helton hit a go-ahead single as the Rockies won a game that was delayed 2 hours as 8 inches of snow was removed from the field.
Early in the day, Rockies owner Dick Monfort took the field with a shovel and helped clear the way for the game to be played. A crew of team employees lent a hand as well, as did Sandy Alderson, the general manager of the Mets.
Colorado came back in the nightcap to tie it 8-all with two runs in the eighth inning, courtesy of errors by Mets reliever Brandon Lyon and shortstop Ruben Tejada.
Rafael Betancourt (1-0) pitched a scoreless 10th to earn the win. Greg Burke (0-1) took the loss on a long day of chilly baseball. The temperature at first pitch for the second game was 36 degrees.
David Wright homered twice in the opener for the Mets, finally back on the field after cold weather postponed two straight games. Wintry conditions in Minneapolis on Sunday prompted their game against the Twins to be rescheduled for August.
Juan Nicasio (2-0) allowed four runs in five innings. Dillon Gee (0-3) had another rough outing, going 4 2-3 innings and giving up five earned runs.
PHILLIES 0, REDS 0, 9TH INNING, SUSPENDED
CINCINNATI (AP) — The Philadelphia Phillies and Cincinnati Reds managed only two singles apiece, staying scoreless until their game was suspended because of heavy rain in the middle of the ninth inning.
The game will be picked up at the same point on Wednesday at 5:30 p.m., before the teams play the finale of their series no earlier than 7:10 p.m.
Phillies reliever Phillippe Aumont was warming up to start the bottom of the ninth when heavy rain prompted the umpires to call for the tarp. They decided to suspend the game after 43 minutes with more rain headed for the area.
Aroldis Chapman pitched the top of the ninth and retired the three Phillies he faced.
A storm moved through after both teams finished batting practice and delayed the start by 1 hour, 20 minutes. Rain returned intermittently and became steady in the fifth inning, then heavy in the ninth.
Philadelphia starter Kyle Kendrick and Cincinnati's Homer Bailey were stingy, allowing a pair of singles apiece before leaving.
BREWERS 10, GIANTS 8
MILWAUKEE (AP) — Yuniesky Betancourt hit a grand slam, and Carlos Gomez and Norichika Aoki also homered as Milwaukee used an eight-run third inning to beat Barry Zito and San Francisco.
Betancourt's fifth career slam highlighted the seven-hit inning that chased Zito, who hadn't lost since Aug. 2 against the New York Mets. Rickie Weeks doubled home two runs and Jonathan Lucroy added a two-run single as the Brewers sent 12 batters to the plate. Zito faced 11 of them.
Zito (2-1) had opened the season with consecutive scoreless seven-inning outings. He lasted only 2 2-3 innings this time and his spotless ERA ballooned to 4.86. Dating to last season, the Giants had won the previous 13 regular-season games started by Zito.
Gomez's home run off the foul pole in left snapped Zito's scoreless streak to start the season at 15 2-3 innings. Zito is 0-5 in eight starts at Miller Park and has never lasted more than 5 2-3 innings.
Brandon Kintzler (2-0) got the win in relief. Jim Henderson pitched the ninth for his second save.
Ryan Braun struck out four times.
PADRES 9, DODGERS 2
LOS ANGELES (AP) — Jason Marquis pitched three-hit ball over 7 2-3 innings for his first win of the season and Alexi Amarista tied a career high with four RBIs, leading San Diego over Los Angeles.
Marquis (1-1) allowed his only run on Mark Ellis' bases-loaded sacrifice fly and struck out five.
Nick Hundley and Yonder Alonso each had two RBIs, helping the Padres win their second straight over Los Angeles after a 2-10 start and handing the Dodgers their third straight loss.
Chris Capuano (0-1) came out of the bullpen to make his first start of the season in place of $147 million right-hander Zack Greinke, whose collarbone was broken during a bench-clearing brawl with the Padres in San Diego last Thursday, after he hit Carlos Quentin with a pitch. Quentin, who charged the mound, served the second game of his eight-game suspension.