Dee Gordon had two hits, two walks and three stolen bases — one shy of tying the Marlins' single-game franchise high, which he has done on two separate occasions.
Atlanta's Freddie Freeman extended his hitting streak to 28 games in the first inning and has reached base in 44 straight. He also hit a solo home run in the sixth, his 32nd.
Brian Ellington (4-2) earned the win in relief and A.J. Ramos recorded his 39th save in 42 chances.
Aaron Blair (1-6) allowed five runs in 3 1/3 innings.