The Marlins executed a double steal that resulted in a run in the fifth and Giancarlo Stanton finished off the scoring with a two-run homer in the seventh in the Marlins' second straight win.
Atlanta dropped out of first place in the National League East, falling a half game behind Washington.
Miami faced a 1-0 deficit heading into the fourth, but Kearns put the Marlins in front with his two-run double and he then scored on a single by Emilio Bonifacio.
The Marlins added three more in the fifth, an inning highlighted by the double steal involving Jose Reyes and Omar Infante. Infante headed from first to second and Reyes then broke for home and beat the throw back to the plate.
Singles by Gaby Sanchez and Bonifacio drove in runs later in the inning.
Mark Buehrle (3-4) was the winning pitcher even though he allowed four runs on six hits in six innings.
Mike Minor (2-3) gave up six runs on six hits with three walks in 4 2/3 innings and suffered the loss.
Rosie O'Donnell unveils nearly 50-pound weight loss
Putin thinks Obama would save him if he were drowning