Brian McCann also connected for the Braves, who won a matchup of NL division leaders for the second straight night.
Keuchel (1-1) allowed three runs and eight hits over 5 2/3 innings in his second start with Atlanta. He remained in the game following a 48-minute rain delay in the fourth.
Keuchel gave up four runs, three earned, over five innings in a loss last Friday at Washington. After a long wait in free agency, the 2015 AL Cy Young Award winner signed a one-year contract with Atlanta on June 7 that pays him $13 million.
"It feels good any time you can get a win," Keuchel said. "The boys put it on early, so it was about as easy as I could draw it up.
"I need to tweak a few things and tidy a few things up, but I think I'm well on my way to where I want to be."
Keuchel is a groundball specialist and he induced the Cubs to hit into double plays in each of the first three innings.
"I think I'm going to be pleased with what I see from Dallas Keuchel about 98 percent of the time," Braves manager Brian Snitker said. "Another solid job."
Four relievers combined to get the final 10 outs and hold the Cubs scoreless. A.J. Minter went 1 1/3 innings for his fourth save. Minter came on with the potential tying runs on base in the eighth and struck out pinch-hitter Victor Caratini.
Chicago starter Yu Darvish (2-4) had his string of 10 straight no-decisions snapped with the loss. He allowed five runs on five hits in five innings, walking two and striking out eight. He retired the last eight batters he faced after giving up Markakis' three-run drive with one out in the third.
"His stuff got better, he got into a rhythm late," Cubs manager Joe Maddon said. "There are things that we did to not help him. We still have to do better offensively with runners in scoring position. All the double plays we're hitting into. We made mistakes on defense."
In 12 starts at Wrigley Field since signing with the Cubs prior to the 2018 season, Darvish is 0-5 with a 6.03 ERA.
Atlanta jumped on top 1-0 with a manufactured run in the first. Ronald Acuna Jr. led off with a walk, stole second and advanced to third on a throwing error by Contreras. One out later, Acuna scored on Darvish's wild pitch.
McCann made it 2-0 on a long shot off the scoreboard in right in the second, and Markakis' homer extended the lead to 5-0.
Contreras and Bryant hit solo shots in the fourth and fifth, respectively, to make it 5-2. In the sixth, Contreras tripled with one out and scored on a groundout by Jason Heyward.
After the game, the Cubs announced closer Craig Kimbrel will be added to their roster Thursday before the series finale.
Kimbrel, a seven-time All-Star, completed his minor league assignment Tuesday and traveled to Chicago on Wednesday. He pitched in four games for Triple-A Iowa, allowing one run and two hits in 3 2/3 innings. The right-hander worked a clean ninth with two strikeouts Tuesday in Iowa's 5-1 win over Omaha, throwing 16 pitches.
Kimbrel and the Cubs finalized a $43 million, three-year contract on June 7. The 31-year-old reliever has 333 career saves, including 42 last season for World Series champion Boston.
To make room on the 25-man roster, right-hander Tony Barnette was optioned to Iowa.
Braves: RHP Mike Soroka (8-1, 2.07 ERA) is expected to make his scheduled start Friday in New York against the Mets. He left his outing Sunday against Washington after being hit on the right arm.
The Braves will recall RHP Bryse Wilson (0-0, 8.31 ERA) from Triple-A Gwinnett to start against Cubs RHP Tyler Chatwood (3-1, 3.69) on Thursday. The 21-year-old Wilson lasted just 3 1/3 innings in his last start in the majors at Philadelphia on March 30, giving up four runs and five hits. Chatwood allowed three runs (two earned) and six hits in four innings against the Mets last Thursday.
More AP MLB: https://apnews.com/MLB and https://twitter.com/AP-Sports
Bemboom hits his first homer in the majors
Anthony Bemboom sends a ball into deep right field for a two-run home run, the first homer of his career.
Indians' Kluber exits rehab game with ab issue
Indians ace Corey Kluber was removed from a minor league start after one inning because of abdominal tightness.
Rockies walk off in the 10th
Garrett Hampson hits a single to left field in the bottom of the 10th inning to give the Rockies a 7-6 win over the Marlins.
D-backs avoid sweep, top Giants in Bochy's Arizona farewell
Wilmer Flores and David Peralta homered, Merrill Kelly held the San Francisco Giants to one run in 5 2/3 innings, and the Arizona Diamondbacks avoided a four-game series sweep with a 6-1 victory Sunday.
Hampson's single in 10th rallies Rockies past Marlins, 7-6
Garrett Hampson hit a bases-loaded single in the bottom of the 10th inning, and the Colorado Rockies rallied to beat the Miami Marlins 7-6 on Sunday, completing a three-game sweep.
Ohtani goes deep for a 2-run homer
Shohei Ohtani drives a ball to straightaway center for a two-run home run to give the Angels a 7-1 lead.